jsp中forward和sendRedirect的区别
2007-03-27 08:58
375 查看
1.RequestDispatcher.forward()
是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递.
但forward ()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如 servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面.
重定向后浏览器地址栏URL不变.
例:servlet文件中重定向
CODE
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html; charset=gb2312");
ServletContext sc = getServletContext();
RequestDispatcher rd = null;
rd = sc.getRequestDispatcher("/index.jsp");
rd.forward(request, response);
}
2.response.sendRedirect()
是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,且在浏览器地址栏上会出现重定向页面的URL.
sendRedirect()可以重定向有frame的jsp文件.
例:servlet文件中重定向
CODE
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html; charset=gb2312");
response.sendRedirect("/index.jsp");
}
是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递.
但forward ()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如 servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面.
重定向后浏览器地址栏URL不变.
例:servlet文件中重定向
CODE
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html; charset=gb2312");
ServletContext sc = getServletContext();
RequestDispatcher rd = null;
rd = sc.getRequestDispatcher("/index.jsp");
rd.forward(request, response);
}
2.response.sendRedirect()
是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,且在浏览器地址栏上会出现重定向页面的URL.
sendRedirect()可以重定向有frame的jsp文件.
例:servlet文件中重定向
CODE
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html; charset=gb2312");
response.sendRedirect("/index.jsp");
}
相关文章推荐
- JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,respon 区别
- JSP面试题——forward与sendRedirect的区别
- Jsp重定向forward和sendRedirect的区别
- JSP 中 forward 转发 和 sendRedirect 重定向的区别
- jsp---forward和sendRedirect的区别
- 请求转发 jsp:forward和sendRedirect的区别
- 【转】JSP面试题——forward与sendRedirect的区别
- 在JSP中forward与sendRedirect的区别
- JSP的Forward及sendRedirect方法区别
- <%@include%>、<jsp:include>、<jsp:forward>、sendredirect 的区别
- jsp:forward标签和response.sendRedirect()方法的区别
- Jsp:forward与response.sendRedirect()两种跳转的区别
- JSP中forward()与sendRedirect()区别
- JSP中动态INCLUDE与静态INCLUDE,forward与sendredirect的区别
- <jsp:forward>与response.sendRedirect()的区别
- <jsp:forward>标签跳转指令和response.sendRedirect()跳转指令的区别
- jsp中页面之间的跳转forward与sendRedirect的区别
- jsp中forward方法与sendRedirect方法的区别
- jsp中forward与sendRedirect的区别
- <jsp:forward>与response.sendRedirect的区别