java servlet:servlet中重定向和转发之间的区别

我正在使用servlet有两个方法重定向和转发两个都是发送请求到同一页但他们之间有什么区别。任何想法

  • 重定向 – 它使用浏览器重定向。 它发送一个代码为3xx的http响应( 参见维基百科 ),然后浏览器向新页面发出另一个请求

  • forward – forward是servlet容器的内部。 浏览器永远不会理解页面已更改。 因此,URL不会更改(例如重定向),并且您在新页面中也有相同的请求。

要添加到上面写的点,重定向意味着在客户端,而转发意味着在服务器端。 因此,这意味着可以将其页面重定向到当前应用程序中的某个其他应用程序,因为它在浏览器端进行了操作,但是将其转发到同一应用程序的某些jsp或servlet。

如果Request Dispatcher请求没有返回浏览器,它直接从当前servlet(页面)转发到页面(servlet)。 所以浏览器url没有变化。 在发送重定向的情况下,第一个请求从当前页面(servlet)返回到浏览器,然后转发到指定的(页面)。 所以url是变化的。