JSP中的redirect和forward
来源:百度文库 编辑:神马文学网 时间:2024/04/29 10:14:07
下面是别人总结的很全面
http://www.blogjava.net/yzzh9/archive/2009/06/09/280908.html
http://www.diybl.com/course/4_webprogram/jsp/jsp_js/200863/121115.html#
下面是自己总结的:代码可以运行的。可以运行下看看,加深理解。
1、登录jsp页面
<%@ page language="java" contentType="text/html"
pageEncoding="utf-8"%>
2、servlet类的写法
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestTZ extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String path2="/testPath.jsp";
String path3="testPath.jsp";
String uname=req.getParameter("uname");
String password=req.getParameter("password");
req.setAttribute("k", uname);
req.setAttribute("v", password);
// this.getServletConfig().getServletContext().getRequestDispatcher(path2).forward(req, resp);
// req.getRequestDispatcher(path3).forward(req, resp);
// 上面两个forward方法都可以,跳转到另外一个页面(他们是服务器端跳转)。IE里面的地址看不出跳转到那个jsp页面。
//但是上面的两个跳转的具体区别,还有点不太清楚。
//============================================================
//sendRedirect它是客户端跳转,可以在IE里面看到,跳转到那个jsp页面。
//但是它不能通过request.getAttribute("变量");得到值。
resp.sendRedirect(path3);
}
}
3、接受值的jsp的写法
<%@ page language="java" contentType="text/html"
pageEncoding="utf-8"%>
结果是:
<%=request.getAttribute("k") %>
<%=request.getAttribute("v") %>
4、servlet的配置文件web.xml的写法
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">