请求转发和重定向的区别
方法:request.getRequestDispatcher().forward(request, response)
重定向
方法:response.sendRedirect()
大致区别:(帮助理解)
假设你去办理某个执照
重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。
转发:你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来,而不知道中间的B,甚至C、D。
二者区别:
-
-
因为使用重定向会重新向浏览器发出一次新的请求, 所以使用requestsetattribute时,获取的request对象,不是同一个对象,而是一个新的对象。
-
请求转发浏览器的地址栏不会发生变化 ,而重定向会发生改变。
-
请求转发:仅限于当前web应用内,"/"代表当前web应用的根目录;请求重定向:可以定向到任何资源,"/"代表当前web站点的根目录。