码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet中的跳转(redirect和forward)

时间:2015-01-12 09:19:44      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:servlet   redirect   forward   

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)

标签:servlet   redirect   forward   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!