Java中 forward 和redirect的区别:

 我来答
百度网友329a687
推荐于2017-10-08
知道答主
回答量:6
采纳率:0%
帮助的人:6.2万
展开全部
使用forward的时候浏览器不知道它所请求的具体资源来源,所以地址栏不会变;
使用redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。

forward,转发页面和转发到的页面可以共享request里面的数据.
redirect,不能共享数据.
愈津旗妙珍
2019-06-20 · TA获得超过3688个赞
知道大有可为答主
回答量:3133
采纳率:34%
帮助的人:249万
展开全部
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendredirect()方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
13037376
2009-06-15 · TA获得超过1372个赞
知道小有建树答主
回答量:1198
采纳率:0%
帮助的人:1084万
展开全部
forward 可传递参数,地址栏不变,只能在服务器范围内

redirect 重定向,地址栏改变,参数清空,但可跳到任何地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贲翰宇文高阳
2019-05-30 · TA获得超过3854个赞
知道大有可为答主
回答量:3137
采纳率:27%
帮助的人:436万
展开全部
在Servlet中两种实现:
forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request,
response);
redirect方式:response.sendRedirect("/somePage.jsp");
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。
forward
会将
request
state
,
bean
等等信息带往下一个
jsp
redirect
是送到
client
端后再一次
request
,
所以资料不被保留.
使用
forward
你就可以用
getAttribute()
来取的前一个
jsp
所放入的
bean
等等资料
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hlc001
2009-06-16 · TA获得超过104个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:123万
展开全部
request.forward 转发
地址栏不变,客户端服务器交互2次,可以读到前一个页面里request里存的值
response.redirect 重定向
地址栏改变,客户端服务器交互4次,读不到前一个页面里request里存的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式