`

再谈forward与redirect

    博客分类:
  • J2EE
阅读更多


1.从地址栏显示来说 

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址. 
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL. 

forward 是服务器内部重定向,程序收到请求后重新定向到另一个程序,而客户机并不知晓;forward会将   request  state、bean、等信息带到下一个jsp页面; 
使用getAttribute()来取得前一个jsp所放的信息. 
redirect  是服务器收到请求后发送一个状态头给客户,客户将再次请求,就有两次网络通行的来往。redirect 是送到客户端后再次request,因此上一个jsp的信息不被保留 

2.从数据共享来说 
forward:转发页面和转发到的页面可以共享request里面的数据. 
redirect:不能共享数据. 

redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源. 
forward,方法只能在同一个Web应用程序内的资源之间转发请求. 
在平时的时候,我们是不可以直接用url来访问WEB-INF目录下的资源的,但是用forward就可以访问得到或者用其它的办法(只要是在服务器执行就应该行了吧). 

forward是不能夸context转发的(例如:/context1/url 的不能用forward 转发到 /context2/url 中去),但是redirect就可以(因为它是浏览器端转发的,是服务器端发送一个http头部信息,浏览器根据这个信息再进行转发,但有一些情况要注意,例如是不同的端口号或者ip的url话,请用绝对url,不要用相对的,否则会出问题). 

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

forward比较好的地方就是forward可以把对象传过去,redirect只能传字符串. 


4.从效率来说 
forward:高. 
redirect:低. 


5. forward不会走过滤器(Servlet 2.4 開始forward可以走过滤器, 不過要響web.xml設定) 如果是用forward转发的话,因为是内部(容器中)转发的,所以也就不用再经过过滤器(filter)的过滤了(如果要是再经过,可能会造成无限递归),但是redirect就要(因为它是多次向服务器请求). 


http://www.iteye.com/topic/82109 
http://www.iteye.com/topic/3497

分享到:
评论

相关推荐

    forward与redirect区别

    在开发Web应用时,我们经常会遇到“forward”和“redirect”的概念,它们是两种不同的页面跳转方式。理解和掌握它们的区别对于优化用户交互和处理请求流至关重要。 **forward(转发)**: - 转发是由服务器端完成的...

    jsp forward与redirect实探

    当我们需要在不同的页面之间导航时,`forward`和`redirect`是两种常见的处理请求转发和重定向的方法。本文将深入探讨这两种机制及其区别。 首先,`forward`是通过服务器端内部跳转实现的。它使用`RequestDispatcher...

    forward与redirect!转发和重定向 解析

    ### Forward与Redirect解析 在Web开发中,Forward(转发)与Redirect(重定向)是两种常见的页面跳转方式。它们虽然都可以实现从一个页面跳转到另一个页面的功能,但在实现机制、应用场景以及对用户浏览器地址栏的...

    forward转发与redirect重定向的区别.zip

    在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的请求处理方式,它们在实现客户端和服务器之间的交互时起到至关重要的作用。了解它们的区别对于优化用户体验和提高应用性能至关重要。 首先,让...

    JAVA面试题之Forward与Redirect的区别详解

    "JAVA面试题之Forward与Redirect的区别详解" 本文主要讲解了在JAVA面试中可能遇到的问题,即JAVA中Forward与Redirect两者之间的区别。文中详细介绍了两种请求转发方式的原理和区别,包括请求转发的含义、Forward...

    转发和重定向的区别 forward和redirect的区别

    2. 重定向(Redirect): - 使用`Response.sendRedirect()`方法实现。 - 重定向会导致浏览器发起一个新的HTTP请求,所以URL会显示为新的目标地址,客户端浏览器能够感知到这个变化。 - 重定向路径必须是绝对路径...

    struts_actionforward.rar_ActionForward_redirect

    ActionForward的使用 1、理解全局和局部ActionForward的概念 2、redirect的使用 3、struts-config.xml文件不允许动态修改 4、理解动态ActionForward,动态的ActionForward是可以运行期修改的

    Forward 2.71 安装程序

    Forward 2.71 是一款专业且功能丰富的网络数据包分析工具,主要用于网络监控、故障排查和性能优化。本文将详细介绍如何安装 Forward 2.71,并探讨其主要功能和使用场景。 首先,我们来了解 Forward 2.71 的安装步骤...

    19.Servlet中forward和redirect的区别.avi

    19.Servlet中forward和redirect的区别.avi

    Java面试题19.forward和redirect的区别.mp4

    Java面试题19.forward和redirect的区别.mp4

    Forward中文版2.7.rar

    forward是一款很有用的软件,在工程方面、测井方面,勘探方面经常用到 Forward for Windows平台提供多种应用挂接方式,如何应用(包括DOS应用) 经方法管理器加入平台后,自动具备各种平台特性(如方法拖拉、接收井...

    feed forward equalization 专利

    Embedded wire feed forward equalization Embedded wire feed forward equalization Embedded wire feed forward equalization Embedded wire feed forward equalization Feed-forward optical equalization using ...

    java中dispcter和forward的区别

    3. 效率:`forward()`通常比`redirect()`更高效,因为它不需要浏览器再次发起请求。 4. 范围:`forward()`通常用于转发到应用程序内部的资源,而`redirect()`可以重定向到任何URL,包括外部站点。 5. 使用场景:`...

    Forward工程技术手册.pdf

    国产地层油气藏测井评价系统forward工程技术手册,提供forward平台各模块的功能细节描述,应与forward用户实用手册配合使用。

    structs in action中文完全版\6. 连线 ActionForward.pdf

    #### 一、ActionForward的作用与功能 在Struts框架中,ActionForward扮演着至关重要的角色。它不仅负责处理请求之后的流程控制,还能够指导Struts框架下一步应该转向何处。具体而言,ActionForward用于指示Action...

    springMVC3学习 九 redirect和forward跳转 源码

    springMVC3学习 九 redirect和forward跳转 源码 文章地址http: blog csdn net itmyhome1990 article details 26286669

    ActionForward与ForwardAction的功能

    【ActionForward与ForwardAction的功能】 在Java EE的Struts框架中,ActionForward和ForwardAction是两个重要的概念,它们主要用于处理用户请求并控制应用程序的流程。理解这两个组件的功能和使用方式对于构建基于...

    forward用户操作使用手册

    - **1998年**:Watch 2.0的发布,是我国第一套生产测井解释平台,与Forward共享数据底层和平台工具,为后续的勘探开发一体化打下基础。 - **2003年**:随着技术的不断进步,Forward 2.7和Watch 2.7的升级,增强了...

    iptables之forward

    试验环境如上图 防火墙网卡1与客户端在一个物理网络,ftp服务器与http服务器与防火墙网卡2在同一物理网络。...~]# iptables -P FORWARD DROP #FORWARD默认规则置为DROP ~]# setenforce 0 #关闭selinux

    全能测井解释软件Forward_2.7_最全教程

    全能测井解释软件Forward 2.7是一款专为石油行业设计的强大工具,它集成了多种测井数据处理、分析和解释功能,旨在帮助地质工程师更好地理解地下储层特性。本教程将详细介绍该软件的各项功能和操作流程,为用户提供...

Global site tag (gtag.js) - Google Analytics