`
tzq668766
  • 浏览: 81560 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

使用struts2时为什么使用ActionContextCleanUp filter

阅读更多

使用struts2时为什么使用ActionContextCleanUp     filter(转)

 

为了使用WebWork,我们只需要在web.xml配置FilterDispatcher一个过滤器即可,阅读一下FilterDispatcher的JavaDoc和源码,我们可以看到它调用了:

 finally
 {
            ActionContextCleanUp.cleanUp(req);
 } 

在ActionContextCleanUp中,有这样的代码:

req.setAttribute(CLEANUP_PRESENT, Boolean.TRUE); 

如果FilterDispatcher检测到这个属性,就不会清除ActionContext中的内容了,而由ActionContextCleanUp后续的代码来清除,保证了一系列的Filter访问正确的ActionContext.

文档中提到,如果用到SiteMesh的Filter或者其他类似Filter,那么设置顺序是:

 ActionContextCleanUp filter
 SiteMesh filter
 FilterDispatcher
 所以最后我们的web.xml应该类似这样:

    <filter>
        <filter-name>ActionContextCleanUp</filter-name>
        <filter-class>com.opensymphony.webwork.dispatcher.ActionContextCleanUp</filter-class>
    </filter>

    <filter>
        <filter-name>sitemesh</filter-name>
        <filter-class>com.opensymphony.webwork.sitemesh.FreeMarkerPageFilter</filter-class>
    </filter>

    <filter>
        <filter-name>webwork</filter-name>
        <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>ActionContextCleanUp</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

   <filter-mapping>
        <filter-name>webwork</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

分享到:
评论

相关推荐

    Struts2初步使用总结

    **1.1 为什么要用Struts2** 在探讨为何使用Struts2之前,我们先简要回顾一下Struts2的一些基本特点: - **模块化设计**:Struts2采用模块化的架构设计,使得各个组件易于替换和扩展。 - **支持多种视图技术**:...

    Struts2乱码终极解决办法

    - 添加一个名为`struts-cleanup`的过滤器,使用`org.apache.struts2.dispatcher.ActionContextCleanUp`类。 ```xml &lt;filter&gt; &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.struts2....

    Struts2整合SiteMesh技巧

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ActionContextCleanUp&lt;/filter-class&gt; &lt;/filter&gt; ``` 2. **sitemesh**过滤器:由SiteMesh提供的过滤器,用于识别并应用页面布局。 ```xml &lt;filter&gt; &lt;filter-name...

    struts2 源码分析

    Struts2 源码分析 Struts2 是一个基于MVC 模式的Web 应用程序框架,它...Struts2 的源码分析可以帮助我们更好地理解框架的内部机制和工作流程,掌握 Struts2 的源码可以让我们更好地使用这个框架来开发 Web 应用程序。

    struts2重要知识点原理

    Struts2在设计时很大程度上依赖了WebWork框架,很多核心功能都基于WebWork(现为xwork)库。尽管如此,Struts2在其之上增加了一些特定的特性,比如更丰富的标签库和更友好的API,使其更适合大型企业级应用。 总结...

    Struts2基本原理

    Struts2提供了与其他框架的集成能力,如通过ActionContextCleanUp过滤器帮助集成SiteMesh实现页面布局。 总的来说,Struts2框架提供了一个结构化的方法来组织和管理Web应用,简化了开发过程,通过配置文件和拦截器...

    Struts2源码阅读

    当客户端发起一个请求时,请求会经过一系列的Filter,首先是`ActionContextCleanUp`过滤器,它的主要任务是清理当前线程的`ActionContext`和`Dispatcher`。接下来,请求会到达`FilterDispatcher`,这是Struts2的核心...

    struts2.例子

    当使用Struts2的URL标签`&lt;s:url/&gt;`时,可以通过设置`includeParams`属性来控制URL中是否包含参数。例如: ```xml ``` 这将生成一个不包含任何参数的URL。 ### 主题和样式表 Struts2提供了一系列内置的主题,如`...

    java项目中 struts2升级为struts-2.3.16.3

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ActionContextCleanUp&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt; &lt;url-pattern&gt;/* &lt;/filter-mapping&gt; --&gt; &lt;!-- 新的...

    Struts2 工作原理 Struts2框架 有图

    当一个HTTP请求到达时,Struts2通过一系列精心设计的组件和流程,将请求转化为具体的业务逻辑执行,并最终返回响应结果给客户端。 ### 二、Struts2工作流程详解 #### 1. 请求初始化 一切始于客户端发起的HTTP请求...

    Struts2的工作原理和流程

    2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,...

    struts2的中文乱码问题解决

    org.apache.struts2.dispatcher.ActionContextCleanUp &lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt; &lt;url-pattern&gt;/* &lt;/filter-mapping&gt; ``` - 可以进一步...

    struts2流程与流程图

     请求被提交到一系列(主要是3层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器(SiteMesh等)、 FilterDispatcher)。注意:这里是有顺序的,先ActionContext CleanUp,再其他过滤器(Othter ...

    Struts 2中的OGNL教程

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ActionContextCleanUp&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt; &lt;url-pattern&gt;/* &lt;/filter-mapping&gt; &lt;filter&gt; ...

    struts2课堂笔记

    #### 一、为什么学习Struts2 - **提升编码效率**:Struts2提供了一套标准的MVC框架结构,能够帮助开发者快速地实现业务逻辑与视图分离,减少重复代码,从而提高开发效率。 - **框架特性**:虽然Struts2是一个半成品...

    flex与struts2整合

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ActionContextCleanUp&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter&gt; &lt;filter-name&gt;struts&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/...

    Struts2入门笔记

    Struts2被定义为一个**Pull MVC**或称为**MVC2**框架。相较于传统的MVC框架,Struts2中的**Action**扮演的是**Model**的角色,而不是控制器的角色。这意味着在Struts2中,业务逻辑和模型数据紧密地结合在一起,由...

    解决struts2.1.6+spring+hibernate 中文乱码

    org.apache.struts2.dispatcher.ActionContextCleanUp &lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt; &lt;url-pattern&gt;/* &lt;/filter-mapping&gt; ``` 该过滤器的主要作用是...

    Struts2执行原理

    Struts2中的过滤器链包括了`ActionContextCleanUp`,它负责清理ActionContext,确保每个请求都有独立的上下文。接下来可能会有其他自定义过滤器如`OtherFilters`和`SiteMesh`, SiteMesh则主要用于页面布局和装饰,...

    Struts2_内核中文文档.pdf

    在Struts1中,核心控制器是`ActionServlet`,而Struts2则采用了过滤器(Filter)的设计模式来实现控制器功能。`FilterDispatcher`作为一个过滤器,其主要职责是接收用户的HTTP请求并进行相应的处理。 **核心控制器...

Global site tag (gtag.js) - Google Analytics