RequestDispaatcher 和 sendRedirect 区别
2016-02-19 00:00
465 查看
摘要: RequestDispaatcher 和 sendRedirect 区别及用法
RequestDispaatcher 在服务器端运行
如:request.RequestDispatcher 请求转发 前后页面共享同一个Request对象
sendRedirect 通过向客户端浏览器发送命令来完成
如:Response.sendRedirect 重定向 重定向后的页面创建新的Request对象
所以RequestDispatcher.forward()对于浏览器来说是“透明的”;
而HttpServletResponse.sendRedirect()则不是
RequestDispatcher 的 forward方法前必须先清空缓冲区。
"/"代表相对与web应用路径
RequestDispatcher rd = request.getRequestDispatcher("/ooo");
rd.forward(request, response);提交至http://localhost:8080/Test/ooo
RequestDispatcher rd = getServletContext().getRequestDispatcher("/ooo");
rd.forward(request, response);提交至http://localhost:8080/Test/ooo
RequestDispatcher rd =getServletContext().getNamedDispatcher("TestServlet");
(TestServlet为一个 <servlet-name>)
rd.forward(request, response);
提交至名为TestServlet的servlet
如果在<jsp:forward>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用。
另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交
RequestDispaatcher 在服务器端运行
如:request.RequestDispatcher 请求转发 前后页面共享同一个Request对象
sendRedirect 通过向客户端浏览器发送命令来完成
如:Response.sendRedirect 重定向 重定向后的页面创建新的Request对象
所以RequestDispatcher.forward()对于浏览器来说是“透明的”;
而HttpServletResponse.sendRedirect()则不是
RequestDispatcher 的 forward方法前必须先清空缓冲区。
"/"代表相对与web应用路径
RequestDispatcher rd = request.getRequestDispatcher("/ooo");
rd.forward(request, response);提交至http://localhost:8080/Test/ooo
RequestDispatcher rd = getServletContext().getRequestDispatcher("/ooo");
rd.forward(request, response);提交至http://localhost:8080/Test/ooo
RequestDispatcher rd =getServletContext().getNamedDispatcher("TestServlet");
(TestServlet为一个 <servlet-name>)
rd.forward(request, response);
提交至名为TestServlet的servlet
如果在<jsp:forward>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用。
另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交
相关文章推荐
- jsp response.sendRedirect不跳转的原因分析及解决
- jsp中页面之间的跳转forward与sendRedirect的区别
- 浅谈JSP的Forward及sendRedirect方法
- response.sendRedirect传递中文参数
- 同一个页面内Ajax过多导致SendRedirect抛java.lang.IllegalStateException异常
- RequestDispatcher.forward() 和sendRedirect( "")的区别
- servlet里面那些要人蒙圈的方法
- java.lang.IllegalStateException异常解决办法 .
- request.getRequestDispatcher().forward(request,response)和response.sendRedirect()的区别
- request的setAttribute()用法及request.sendRedirect 与 request.getRequestDispatcher.forward 的区别
- sendRedirect和forward原理及区别总结
- sendRedirect() forward() 区别 选择
- 【sendRedirect/forward】
- jsp response.sendRedirect 不跳转
- forward、sendRedirect及Jsp和Servlet之间的跳转 推荐
- jsp内置对象【04】response对象详解
- sendRedirect()重定向与forward()转发的区别
- HttpServletResponse的getWriter()和getOutputStream()以及sendRedirect()方法
- sendRedirect下载文件名乱码
- JAVA 的服务器重定向:使用forward()方法转发请求和使用 sendRedirect()方法重定向的区别