`
meiyx
  • 浏览: 183692 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

ActionContextCleanUp的作用

阅读更多

延长action中属性的生命周期,包括自定义属性,以便在jsp页面中进行访问,让actionContextcleanup过滤器来清除属性,不让action自己清除。

    为了使用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

<!-- 定义ActionContextCleanUp过滤器 -->
     <filter>
      <filter-name>struts-cleanup</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
     </filter>



<!-- 排在第一位的过滤器是:ActionContextCleanUp过滤器。 -->
     <filter-mapping>
         <filter-name>struts-cleanup</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>


分享到:
评论

相关推荐

    Struts2_OGNL 笔记

    5. ActionContextCleanUp过滤器的作用: `ActionContextCleanUp`过滤器是Struts2的一部分,它用于清理ActionContext,确保每次HTTP请求都有一个干净的上下文环境,防止上一次请求的数据影响当前请求,同时有助于...

    java中三大框架和项目模拟面试题目[参考].pdf

    3. 拦截器作用于Action请求,过滤器作用范围更广。 4. 拦截器可以访问Action上下文和值栈,过滤器则不能。 **使用Struts2框架的原因**: 1. MVC架构清晰,开发流程明确,便于理解和控制。 2. 使用OGNL(Object-...

    struts2源代码分析

    `ActionContextCleanUp`的作用是清理当前线程的`ActionContext`,确保每个请求的上下文环境独立。`FilterDispatcher`则根据`ActionMapper`来确定应该调用哪个Action。`ActionMapper`从HTTP请求中解析出Action映射,...

    三大框架面试题

    3. 拦截器作用于Action请求,过滤器可应用于所有请求。 4. 拦截器能访问Action上下文和值栈,过滤器则不能。 5. 拦截器在Action生命周期内可多次调用,过滤器仅在容器初始化时调用。 Struts1与Struts2的比较: 1. ...

    Struts+Spring+Ibatis整合框架搭建文档

    - **作用**:此过滤器用于清理Struts框架中的临时对象,确保每次请求都是干净的环境。 - **配置**:需在Struts2的核心过滤器配置之前完成,以确保正确清理。 **FilterDispatcher** ```xml &lt;filter-name&gt;struts ...

    JAVA三大框架面试题.pdf

    - 拦截器只作用于Action请求,过滤器能处理所有类型请求。 - 拦截器可以访问Action上下文和值栈中的对象,过滤器则不行。 - 在Action生命周期中,拦截器可以多次调用,而过滤器在容器初始化时仅调用一次。 4. **...

    Struts2.1.8培训资料(推荐)

    `ActionContextCleanUp`的作用是与`FilterDispatcher`协作,提供更灵活的SiteMesh整合,以及允许SiteMesh先于其他操作运行。 总的来说,Struts2.1.8是一个成熟的Java Web开发框架,它简化了MVC应用的构建,提供了...

    Struts2 简介

    ActionContextCleanUp过滤器的作用是清理Action中的属性,确保它们在JSP页面中仍然可访问,提供了一种跨请求共享数据的方法。通过这样的设计,Struts2提供了一个高度可定制和可扩展的框架,使得开发者能够更加专注于...

    JAVA三大框架面试题(2)参照.pdf

    3. 拦截器仅对Action请求生效,过滤器可作用于所有请求。 4. 拦截器能访问Action上下文和值栈中的对象,过滤器则不能。 5. 在Action生命周期中,拦截器可多次调用,过滤器仅在容器初始化时调用一次。 【Struts1与...

    S2SH三大框架面试题

    - 拦截器仅作用于Action请求,过滤器能处理所有请求。 - 拦截器可以访问Action上下文和值栈,过滤器不行。 - 拦截器在Action生命周期中可多次调用,过滤器只在容器初始化时调用一次。 4. **Struts1与Struts2的...

    Struts2的运行流程

    5. `FilterDispatcher`将请求转发给`ActionMapper`,`ActionMapper`的作用是解析请求URL,判断是否需要Struts2进行处理。 6. 如果`ActionMapper`确认请求需要处理,`FilterDispatcher`会停止后续过滤器链的执行,并...

    struts2工作流程

    Struts2中默认包含的过滤器有ActionContextCleanUp,这是一个可选过滤器,主要作用是在请求结束时清理与请求相关的上下文环境,这对于框架间的集成特别有帮助,例如在使用SiteMesh插件时。除此之外,还有其他自定义...

    struts2的基本知识

    Struts2是一个流行的...总的来说,掌握Struts2的基本知识包括理解其核心组件的作用,配置文件的结构和作用,以及如何在IDE中进行有效的开发支持。这将有助于开发者更高效地开发和维护基于Struts2的Java web应用程序。

    Struts 2学习

    同时,`FilterDispatcher`还会负责调用`ActionContextCleanUp`过滤器来清理`ActionContext`。 **2. ActionContextCleanUp** 在每次请求结束时,`ActionContextCleanUp`会清除与当前请求相关的`ActionContext`,...

    Java Struts 实现拦截器

    - **作用**: 确定如何获取Action实例,无论是在本地还是远程。 - **ActionInvocation**: - **功能**: 使用命令模式执行Action,负责拦截器的调用。 - **实现**: 通过继承`Invocation`接口实现对Action的调用逻辑...

    Struts2详细工作流程

    ActionMapper的作用是确定请求与哪个Action相对应。如果需要,FilterDispatcher将请求传递给ActionProxy。ActionProxy通过Configuration Manager读取struts.xml配置文件,找到需要执行的Action类,例如,在用户注册...

Global site tag (gtag.js) - Google Analytics