热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

forward与redirect之区别

在做前台开发过程中你可能经常遇到关于转发页面得操作,很显然的就想到了forward和redirect,但是到底用哪一个呢,他们之间有什么区

在做前台开发过程中你可能经常遇到关于转发页面得操作,很显然的就想到了forward和redirect,但是到底用哪一个呢,他们之间有什么区别呢,现在我将我自己的理解以及开发的时候怎么应用写出来供大家参考一下:

(1)       共同点:

          都实现了根据自己的条件实现的页面得跳转。

(2)       区别        

 

类别

 

 

概念

 

 

共享数据

 

 

应用

 

 

Redirect

 

 

URL重新定向:可以是任意的URL

 

 

不能共享request里面的数据

 

 

一般用于用户注销登录时返回主页面和跳转到其它的网站等等

 

 

Forward

 

 

页面的转发:只能是同一个Web应用程序的其他Web组件

 

 

转发页面和转发到的页面可以共性request里面的数据

 

 

一般用于用户登录的时候根据角色转发到相应的模块等等

 

 

 

效率:
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比较合适.

(3)       例子:

       譬如&#xff1a;client 通过XXX/index.jsp?name&#61;gauss&pwd&#61;123访问index.jsp,而index.jsp中有,则在login.jsp中可以通过request.getParameter()得到name和pwd&#xff0c;而<%response.sendRedirect("login.jsp");%>得不到。

&#xff08;4&#xff09; 注意

       一般在index.jsp页面之前有个提交数据的页面default.jsp&#xff0c;则defautl.jsp页面提交的数据就可以在login.jsp页面得到&#xff0c;而不是得到index.jsp页面提交的数据&#xff0c;index.jsp页面只是执行的都是一个转发操作当然在里面可以增加也写业务操作&#xff0c;他可以得到request的数据&#xff0c;用XXX/index.jsp?name&#61;gauss&pwd&#61;123这种方式登录就是省略了index.jsp前面的一个页面提交数据而已

 

 


推荐阅读
author-avatar
mobiledu2502876293
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有