Java Servlet:servlet中sendRedirect和forward的区别

8

我正在使用servlet,有两种方法redirect和forward都可以向同一个页面发送请求,但它们之间有什么区别呢?你有什么想法吗?

3个回答

18
  • 重定向 - 它使用浏览器重定向。它发送一个带有代码3xx的http响应(见维基百科),然后浏览器会再次请求新页面。

  • 转发 - 转发是servlet容器内部处理的。浏览器不知道页面已更改。因此URL不会改变(就像重定向),在新页面中也有相同的请求。


2
除了上述写的要点之外,重定向(Redirect)是指客户端重定向,而转发(Forward)是指服务器端转发。 这意味着,可以将当前应用程序中的页面重定向到其他应用程序,因为它是在浏览器端发生的,但在转发中,则是将其转发到同一应用程序的某个 JSP 或 Servlet。

0
在请求分派器的情况下,请求不会返回到浏览器,而是直接从当前servlet(页面)转发到另一个servlet(页面)。因此,浏览器的URL不会改变。而在重定向的情况下,首先将请求从当前页面(servlet)返回到浏览器,然后再转发到指定的页面。因此,URL会发生改变。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接