Servlet转向和重定向的区别

  • 转向:请求转发是指将请求再转发到其他地址,转发过程中使用的是同一个请求,转发的地址栏内容不变。
  • 重定向:是指由原请求地址重新定位到某个新地址,原有的请求失效,客户端看到的是新的请求返回的相应结果。

举例说明吧:

转发过程:
客户端对servlet1容器发起请求,但是servlet1想让servlet2进行一波客户端请求处理,于是就调用servlet协作让servlet2进行处理。
重定向过程:
客户端对servlet1容器发起请求,但是servlet1想让servlet2进行一波客户端请求处理,Servlet1调用sendRedirect()方法,将客户端的请求重定向到Servlet2,然后浏览器重新请求一次servlet2,servlet2进行请求处理

区别

  1. 请求次数不一样
  2. .响应之后,地址栏是否发生改变
  3. 重定向的响应结果可以“外包”出去;请求转发的相应结果只能靠同一个WEB应用中的组件(如另外一个servlet页面)
  4. 重定向对浏览器的请求直接作出响应,让浏览器去重新发出对另外一个URL的访问请求
  5. 请求转发中用户并不知道是谁完成了该工作,浏览器只知道发出请求和得到相应结果,并不知道服务器内部发生了转换行为

猜你喜欢

转载自blog.csdn.net/weijifeng_/article/details/80088058