`

struts配置文件中<forward>标签的redirect属性

阅读更多
struts-config.xml中有这样一段代码:
<action input= "/error.jsp " path= "/adminLogout " scope= "request " type= "com.laoer.bbscs.web.action.AdminLogout ">
<forward name= "adminlogin " path= "/adminlogin.jsp " redirect= "true " />
</action>
--------------------------
为什么 <forward /> 的参数里要用redirect= "true "啊?
redirect= "true " 是设置什么的?
于redirect= "false " 用的request and action有什莫不同处 什莫时候用,深莫时候不用

回答(1)ActionMapping

ActionMapping将对Struts应用中有效的业务逻辑进行分类,当一个请求到达时,ActionSevlet在ActionMapping目录中查找对应的信息。ActionMapping是Struts应用的一个核心设计,当需要了解一个Struts应用,或编写一个新的Struts应用的时候,都应该从ActionMapping入手。ActionMapping有较多的属性信息,具体参考相关文档。

ActionForward

ActionForward是Struts的核心类之一,其基类仅有4个属性:name / path / redirect / classname。在基于Struts的Web应用程序开发过程中,Action操作完毕后程序会通过Struts的配置文件struts- config.xml链接到指定的ActionForward,传到Struts的核心类ActionServlet,ActionServlet使用 ActionForward提供的路径,将控制传递给下一个步骤。ActionForward控制接下来程序的走向。ActionForward代表一个应用的URI,它包括路径和参数,例如:

path=“/modify.do?method=edit&id=10”

ActionForward的参数除了在struts-config.xml和页面中设置外,还可以通过在Action类中添加参数,或重新在Action中创建一个ActionForward。

在ActionForward中有一个重要的属性redirect,当redirect=false时,将保存存储在http请求和请求上下文中的所有内容,仅在同一个应用中可用。当redirect=true时,Web客户端进行一次新的http请求,请求的资源可以在同一个应用中,也可以不在,原来的请求参数不再保存,原来的请求上下文也被清除,新的http请求仅包含ActionForward的path属性里所包含的参数。如果在同一个应用中,用户会话的上下文会被维护。

ActionForward分为全局转发和局部转发,Action的Mapping对象的findForward方法首先会检查局部转发列表,查找失败就会到全局转发列表中查找。书写格式中,我们一般将全局变量定义为String常数,避免误解,使得转发列表结构清晰易读。

在项目开发过程中经常碰到一种情况,当页面已经改变了,浏览器中的地址如/modify.do或/modify.jsp却没有变化,当时没有考虑这么细,虽然存在疑问,但没有影响到程序功能的实现,因此忽略过去了,今天查找了一些资料才弄清楚。客户端浏览器显示的是浏览器最后被给定的URL,当URL被提交后,在某个组件返回一个响应给浏览器之前,Web应用可能已经转发请求多次,而这些过程都发生在服务器端,客户端浏览器并不知道有什么变化。当一个 http响应被返回时,它并没有包含地址栏的值,所以浏览器仅仅显示其用来作为初始请求的地址。通过使用redirect可以改变浏览器地址的显示,因为这样可以向浏览器提交一个新的请求,但付出的代价是数据不能通过请求上下文传递到页面,这也是使用forward和redirect的差异之一。
分享到:
评论

相关推荐

    Struts2中实现页面的跳转

    通过深入理解和正确配置上述元素,你可以有效地在Struts2框架中利用`&lt;jsp:forward/&gt;`标签实现页面的跳转,避免遇到“no found”的问题。同时,也要注意,在现代Web开发中,更多地使用`&lt;s:redirect/&gt;`标签进行重定向...

    struts 配置文件 标记库

    ### Struts配置文件详解 #### 一、Struts配置文件:`struts-config.xml` `struts-config.xml`是Struts框架的核心配置文件之一,它主要用于定义应用中的表单对象、动作映射以及转发规则等。 ##### 1. `&lt;form-beans...

    详解struts1的配置文件.doc

    本文将深入解析Struts1配置文件中的关键组成部分及其配置细节,帮助读者更好地理解和运用这些配置。 #### 二、`&lt;Data-sources&gt;`配置 `&lt;Data-sources&gt;`标签主要用于配置Struts1应用程序的数据源,即与数据库的连接...

    Struts标签库 ppt教程

    此外,还有`&lt;bean:message&gt;`显示资源文件信息,`&lt;bean:resource&gt;`装载Web资源到JavaBean,`&lt;bean:struts&gt;`访问Struts配置对象,以及`&lt;bean:include&gt;`包含Web资源。`&lt;bean:define&gt;`用于定义变量,`&lt;bean:size&gt;`获取...

    使用urlrewrite重写struts2的action

    在这里,`&lt;from&gt;`标签定义了要匹配的原始URL,`&lt;to&gt;`标签定义了重定向的目标URL。`type="redirect"`表示客户端会接收到一个302重定向响应,`%{contextPath}`是当前应用的上下文路径,`${name}`则是从原始URL中提取...

    struts配置文件讲解

    在这篇详尽的讲解中,我们将深入探讨Struts配置文件的关键元素和作用。 1. **struts-config.xml文件**:这是Struts框架的主要配置文件,通常位于Web应用的WEB-INF目录下。这个XML文件包含了所有关于动作映射、数据...

    struts2中实现URL重写

    &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt; &lt;/filter-mapping&gt; ``` 3. **配置URLRewrite.xml**:创建一个名为`urlrewrite.xml`的配置文件,放在WEB-INF目录下。在这个文件中,定义重写规则。例如,如果我们希望将`/action?...

    Struts1的开发过程

    这里的`&lt;param-value&gt;`指定了Struts的配置文件`struts-config.xml`的位置。 3. 配置`struts-config.xml`:这是Struts的核心配置文件,用于定义Action、Form Bean、Action Mapping等。一个简单的配置示例如下: ```...

    struts1.x_Tags

    - 使用Struts标签时,需要在JSP页面中引入对应的标签库,例如`&lt;%@ taglib prefix="html" uri="/tags/html" %&gt;`。 - 每个标签都有其特定的属性,正确设置这些属性才能确保标签正常工作。 - 在处理表单时,Struts会...

    Framework学习文档

    3. Struts2的执行流程:后台接收到request,经过Struts2的前置控制器StrutsPrepareAndExecuteFilter解析请求路径,去Struts2的配置文件中找对应的namespace和action的name属性,然后再找到对应的class和method,执行...

    Struts1 从0开始到熟练掌握【PDF文档】

    struts-config.xml是Struts框架的核心配置文件,它定义了Action类、Form Bean、Action Mapping以及数据源等关键组件。例如,你可以在这里声明一个Action,指定它的类路径和处理请求的URL,同时配置表单Bean,以处理...

    struts1标签及实例

    - `tools`:可能包含了一些开发工具或辅助资源,如Struts1相关的IDE插件、配置文件模板等。 - `struts_taglib`:这个目录可能包含了Struts1的标签库JAR文件,它是使用Struts1标签所必需的库。 了解并熟练掌握...

    伪静态URLRewrite实例解析

    在Struts框架的配置文件`struts-config.xml`中添加如下内容,以确保`ProcessAction`类能够正确地被调用: ```xml &lt;action-mappings&gt; &lt;action parameter="method" path="/process" type=...

    struts面试宝典.pdf

    #### 五、Action标签中 `&lt;forward&gt;` 子标签与 `&lt;global-forward&gt;` 中 `&lt;forward&gt;` 子标签的区别 - **Action标签中 `&lt;forward&gt;` 子标签**:表示的Web资源只能在本Action中使用。 - **`&lt;global-forward&gt;` 中 `...

    struts面试宝典

    #### 四、Struts配置文件中`&lt;action&gt;`元素的属性和子元素详解 - **path属性**:指定请求访问Action的路径。 - **type属性**:指定Action的完整类名。 - **name属性**:指定需要传递给Action的ActionFormBean。 - **...

    Struts1.3和config配置详解

    在Struts1.3版本中,`struts-config.xml`配置文件扮演着至关重要的角色,它是Struts框架的核心配置文件,定义了控制器的行为和应用的结构。 `struts-config.xml`配置详解: 1. **全局常量配置**:此部分用于定义...

    urlrewritefilter实现伪静态

    URLRewriteFilter的核心在于其规则配置文件`urlrewrite.xml`,通常放在`WEB-INF`目录下。以下是一些常见的规则示例: ```xml &lt;rule&gt; &lt;from&gt;^/oldpath/(.*)$&lt;/from&gt; &lt;to&gt;/newpath/$1&lt;/to&gt; &lt;/rule&gt; &lt;rule&gt; ...

    struts架构和标签库介绍

    Struts配置文件** Struts的配置文件(通常命名为`struts-config.xml`)是XML格式的文件,用于定义Struts应用的配置信息。它包括ActionMapping、ActionForward等配置项,这些配置项定义了请求URL到具体Action的映射...

Global site tag (gtag.js) - Google Analytics