JavaWeb08-请求转发和重定向的区别

请求转发

方法:request.getRequestDispatcher().forward(request, response)

重定向

方法:response.sendRedirect()

大致区别:(帮助理解)

假设你去办理某个执照

重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。

转发:你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来,而不知道中间的B,甚至C、D。

二者区别:

  • 请求转发只有一次请求,而重定向发出了两次请求。

  • 因为使用重定向会重新向浏览器发出一次新的请求, 所以使用requestsetattribute时,获取的request对象,不是同一个对象,而是一个新的对象。

  • 请求转发浏览器的地址栏不会发生变化 ,而重定向会发生改变。

  • 请求转发:仅限于当前web应用内,"/"代表当前web应用的根目录;请求重定向:可以定向到任何资源,"/"代表当前web站点的根目录。

原文地址:https://www.cnblogs.com/Patrick20726/p/13583584.html