论坛首页 Java企业应用论坛

Forward 与 Redirect 两种方式对比

浏览 50966 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2004-03-24  
我的确没有做过类似于BBS这样的系统,不过看了,公司也不需要这种系统,因为大家都只想一进来就知道自己喜欢的东东/看到自己想看到的(亦可以讲是工作区,通知等),而不是所有的功能或者菜单(如果要用redirect的话,那可能要在页面进行一些代码操作,相对于forward等来讲页面代码量可能要多一些,除非你redirect到一个处理的地方再进行forward).

就算我说是BBS也好吧,其实你每次进来BBS的主页都会看到最近谁发的贴(例如:本BBS的右边会显示nick name等.).
那就是说,进行登录后-->redirect到主页-->主页内进行一些操作(可能给一些类操作再得到结果,因为redirect是不能传送集合或者对象等东东的),但是这样子还是用了页面调用了类的逻辑,那页面就是不单单地只显示结果,还有点逻辑),看下面的见解.
对于我们一般地都是用这种方法/模式:
用户-->控制器(servlet/other)-->处理(command或者更多的其它层)-->转发(有两种,第一种是没有结果返回的,可以用redirect或者forward,第二种有结果返回的,那只能用forward,当然用redirect加session/application也可以)-->页面进行显示

请指教
0 请登录后投票
   发表时间:2004-03-24  
lunawing 写道
更正[login.do forward login.jsp] submit [afterLogin.do] redirect [main.do forward main.jsp]


有这样子做的吗??
如果是这样子的话,效率(包括开发时和访问时)是不是很低呢??

其实应该是这样吧:
<do>
        <id>login.do</id>
        <class>Login</class>
        <success><id>main.do</id></success>  
        <!-- 可以指定页面 -->
        <!-- 例如: <success><page>main.jsp</page></success> -->
        <fail><id>fail.do<id></fail> <!-- 可以指定页面 -->
</do>


上面的不是那个框架的东东,只是想说明,如果是成功的话,应该直接调用其它的行为,而不应该再转一次..
0 请登录后投票
   发表时间:2004-03-25  
muziq 写道
不要陷入技术细节的纠缠,学会关注语义,很多问题都会迎刃而解。


嗯,同感!
0 请登录后投票
   发表时间:2004-03-25  
其实如果是为了防止刷新的话,有很多办法都比这个好呀..
嘻嘻..

其实也没有什么,我们只是讨论讨论而罢了(我是有点执着,是因为我对技术并不太了解,请原谅)
0 请登录后投票
   发表时间:2005-07-15  
xiaoyu 写道
其实如果是为了防止刷新的话,有很多办法都比这个好呀..
嘻嘻..

其实也没有什么,我们只是讨论讨论而罢了(我是有点执着,是因为我对技术并不太了解,请原谅)

快说啊,有什么好办法,为这个问题我都烦死了。3x
0 请登录后投票
   发表时间:2005-07-15  
还是用redirect好吧.我一直这么用

1.防止刷新
2.可以收藏正确的地址,不会误导用户
3.可以用"操作完成"类似的页面进行提示,然后转向另外一个页面
0 请登录后投票
   发表时间:2005-07-25  
拿系统登录举个例子,这里用了Struts。
1,用户在主页面选择刷新的话,会重新触发登录的动作,这对于系统增加了不必要的负担

有点困惑
0 请登录后投票
   发表时间:2005-07-25  
xiaoyu 写道
forward只能是在相同的context中才行,但redirect就不一定啦.
当然如果可以的话尽可能得用forward.
forward是不用再经过filter的,forward是可以访问到受保护资源的(在WEB-INF目录下的资源).
用forward安全性会更高一点(不过新增的时候刷新就会有点麻烦啦,不知道各位高手有什么好办法呢??).


在新的Servlet 2.4规范中,支持Forward的filter.
Pls refers to:  SRV.6.2.5 Filters and the RequestDispatcher
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics