浅谈Servlet——重定向与转发

浅谈Servlet——重定向与转发,第1张

重定向(sendRedirect)方法:

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目录下(只能选择转发)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/719672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存