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

ActionContextCleanUp的作用

    博客分类:
  • J2EE
阅读更多

       延长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

 

测试例子:

package com.struts2.action;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class ContextTest extends ActionSupport {
private String temp = "temp string...";

public String getTemp() {
   return temp;
}

public void setTemp(String temp) {
   this.temp = temp;
}

public String execute() throws Exception {
   //ServletActionContext.getRequest().setAttribute("temp", this.temp);
   return "success";
}
}

 jsp页面:
request--->temp : <s:property value="#request.temp"/><br/>
request--->temp :<s:property value="temp"/><br/>

 

分享到:
评论

相关推荐

    robot framework 2.5.30 版本用户手册资料整理 中文版

    - 变量可以在不同的作用域内定义,其可见性和生命周期不同。 - **高级变量特性:** - 变量替换、表达示变量等。 **2.6 创建用户关键字** - **使用关键字的语法:** - 关键字由名称、参数和步骤组成。 - **用户...

    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完美教程

    - **其他**:Struts还提供了`ActionContextCleanup`类,用于在请求结束时清理资源。 **2. struts.xml文件** - **核心配置**:定义了Struts2的配置信息,可以包含多个其他配置文件,便于管理不同模块的配置。 - **...

    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