首页 > 其他 > 详细

Servlet中的跳转(redirect和forward)

时间:2015-01-12 09:18:01      阅读:296      评论:0      收藏:0      [点我收藏+]
Forward是通过RequestDispatcher对象的forward(HttpServletRequest request,HttpServletResponse response)方法来实现的
RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet/welcom.jsp");
dispatcher.forward(request,response);


getRequestDispatcher()的参数必须以“/”开始,代表Web应用程序的根目录
当执行forward动作时不能有任何输出到客户端,否则会抛出IllegalStateException异常

Redirect是利用服务器返回的状态码来实现的,服务器通过HttpServletResponse的setStatus(int status)方法设置状态码,301代表永久重定向,302代表临时性重定向,HttpServletResponse把setStatus()与setHeader()方法封装成另一个方法sendRedirect(String url)

当使用forward形式跳转时,地址栏会显示跳转前的Servlet访问地址,因为该跳转是在服务器端实现的,对客户端浏览器是透明的
当使用redirect时,跳转是在客户端实现的,实际上请求了两次服务器,第一次获取了重定向的状态码和地址,第二次访问真实的地址

Servlet中的跳转(redirect和forward)

原文:http://blog.csdn.net/u012152619/article/details/42638091

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!