SERVLET API中转发与重定向的区别?

Posted zxfei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SERVLET API中转发与重定向的区别?相关的知识,希望对你有一定的参考价值。

SERVLET API中转发与重定向的区别?

1、转发(forward方法)

  • 转发仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址。

  • 转发是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。

2、重定向(sendRedirect方法)

  • 重定向是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。

  • 重定向就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

结论

所以,转发更加高效,在转发可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用重定向,即使用sendRedirect()方法。

以上是关于SERVLET API中转发与重定向的区别?的主要内容,如果未能解决你的问题,请参考以下文章

Servlet中的转发与重定向的区别

Servlet中的转发与重定向的区别

servlet转发与重定向区别

servlet请求转发与重定向的区别

servlet之转发与重定向的区别

idea创建简单web项目分析Servlet的请求转发与重定向的区别