Servlet API中forward()与redirect()方法有什么区别呢?

杨幂 Servlet 发布时间:2022-05-24 17:39:15 阅读数:3749 1
下文笔者讲述Servlet API中forward()与redirect()方法的区别,如下所示

区别1.从地址栏不同

forward是服务器请求资源
服务器直接访问目标地址的URL
把那个URL的响应内容读取过来
然后把这些内容再发给浏览器
浏览器根本不知道服务器发送的内容从哪里来的
所以它的地址栏还是原来的地址

redirect是服务端根据逻辑
发送一个状态码
告诉浏览器重新去请求那个地址
地址栏显示的是新的URL.
所以redirect等于客户端向服务器端发出两次request
同时也接受两次response

区别2.从数据共享

forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源.
forward方法只能在同一个Web应用程序内的资源之间转发请求.forward 是服务器内部的一种操作 
redirect 是服务器通知客户端,让客户端重新发起请求 
   即:redirect 是一种间接的请求,但是你不能说"一个请求是属于forward还是redirect 

3.从运用地方来说

forward:
    一般用于用户登陆的时候,根据角色转发到相应的模块
redirect:
   一般用于用户注销登陆时返回主页面和跳转到其它的网站等

4.从效率来说

forward:高
redirect:低
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/Servlet/202205/263.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者