servlet重定向指的是一种由http协议规定的机制,重定向属于客户端行为。服务器在收到客户端请求后,会通知客户端浏览器重新向另外一个 URL 发送请求,这称为请求重定向。它本质上是两次 HTTP 请求,对应两个 request 对象和两个 response 对象。重定向方法void sendRedirect(String location)是HttpServletResponse类中的方法。用户在请求一个servlet时,该servlet在处理完数据后可以使用重定向方法将用户重新定向到另一个JSP页面或servlet。
转发(forward)方法:请求转发属于服务器行为。容器接收请求后,Servlet 会先对请求做一些预处理,然后将请求传递给其他 Web 资源,来完成包括生成响应在内的后续工作。转发的功能是将用户对当前JSP页面或servlet的请求转发给另一个JSP页面或servlet,并且可以将用户对当前JSP页面或servlet的请求传递给转发到JSP页面或servlet。
重定向与转发的比较:1、原理不同
重定向:服务器端控制的,在客户端端进行的跳转,两个请求
转发:服务器端控制的,在服务器端进行的跳转,一个请求
2、语法不同
重定向:response.sendRedirect("/myservlet2/login2/success.jsp");
转发:request.getRequestDispatcher("/login2/login.jsp").forward(request, response);
3、跳转的范围不同
重定向:整个互联网
转发:当前项目
4、跳转后获取保存
转发:可以得到在request中的内容
重定向:得不到在request中的内容,因为相当于一个新的请求
5、效率不同:
转发的效率高于重定向
转发和重定向的选择:使用重定向的情况:
跳转到不同的应用(只能使用重定向)
使用Cookie存储数据
使用转发的情况:
希望前后两个组件共享request数据
跳转到同一个应用的WEB-INF目录下(只能选择转发)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)