[摘录]Forward与Redirect区别

摘录地址:http://blog.csdn.net/gauss2008/archive/2006/06/18/809765.aspx

                    Forward与Redirect
       在做前台开发过程中你可能经常遇到关于转发页面得操作,很显然的就想到了forward和redirect,但是到底用哪一个呢,他们之间有什么区别呢,现在我将我自己的理解以及开发的时候怎么应用写出来供大家参考一下:
(1)       共同点:
          都实现了根据自己的条件实现的页面得跳转。
(2)       区别       
类别
概念
共享数据
应用
Redirect
URL重新定向:可以是任意的URL
不能共享request里面的数据
一般用于用户注销登录时返回主页面和跳转到其它的网站等等
Forward
页面的转发:只能是同一个Web应用程序的其他Web组件
转发页面和转发到的页面可以共性request里面的数据
一般用于用户登录的时候根据角色转发到相应的模块等等
(3)       例子:
       譬如:client 通过XXX\index.jsp?name=gauss&pwd=123访问index.jsp,而index.jsp中有<jsp:forward page="login.jsp"/>,则在login.jsp中可以通过request.getParameter()得到name和pwd,而<%response.sendRedirect("login.jsp");%>得不到。
(4) 注意
       一般在index.jsp页面之前有个提交数据的页面default.jsp,则defautl.jsp页面提交的数据就可以在login.jsp页面得到,而不是得到index.jsp页面提交的数据,index.jsp页面只是执行的都是一个转发操作当然在里面可以增加也写业务操作,他可以得到request的数据,用XXX\index.jsp?name=gauss&pwd=123这种方式登录就是省略了index.jsp前面的一个页面提交数据而已


摘录补充:

效率:
Forward高, Redirect低, 因为Redirect的流程是这样的, request 1 sent to server, server return back to client, request 2 then sent to server. But Forward 仅在server side处理, 对client side 是透明的. 由于Redirect 有两次传输, 所以效率低.

范围:
由于对request.setAttribute() 来说, 它携带的对象生存范围只在request内, 所以Redirect方式会导致request携带的对象丢失.

总结: 一般还是用Forward比较合适.




欢迎大家访问我的个人网站 萌萌的IT人

posted on 2007-12-10 11:05 见酒就晕 阅读(444) 评论(0)  编辑  收藏 所属分类: J2EE文章


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(3)

我参与的团队

随笔分类

随笔档案

文章分类

文章档案

收藏夹

BLOG

FRIENDS

LIFE

搜索

最新评论

阅读排行榜

评论排行榜