如图:左为forward的请求流程图,右为redirect的请求流程图

1. forward 是一次完整的请求和响应,是服务器内控制权的转发。可以由servlet接收请求,但把返回响应的权利通过forward给jsp来完成
2. redirect会在第一次响应返回时用状态码302和一个location头来告知浏览器,再发一个请求给location所指向的url地址,整个流程需要两次请求
3. 表现形式上: forward 转发浏览器地址栏地址总是第一个访问的servlet地址,转发地址对浏览器是隐藏的;而redirect,浏览器的地址栏地址是最后转发页面的目标地址,对浏览器可见。
4. forward 对应一次请求,因此可以利用request作用域传递信息;而 redirect 对应两次请求,只能使用session作用域或在重定向地址后面带参的方式来传递信息。(session只要在一个浏览器里即可,可以实现多次请求,forward只能实现一次请求)
5. redirect后的url可以是站外地址,这个特性常常用来与第三方应用做交互调用;而 forward 仅能做本站转发,不能访问站外资源。
相关文章:
猜你喜欢
-
2021-11-22
-
2021-07-07
-
2022-01-02
相关资源
-
下载
2023-02-12
-
下载
2022-12-25
-
下载
2023-04-01