`

struts2使用:Action如何使用request,session,application

阅读更多

一种方法是利用工具类ActionContext,ServletActionContext

另一种是通过实现Action接口,利用接口约定的方法注入.(推荐),下面是这种方案的示例

 

package utils;

import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;
import org.apache.struts2.util.ServletContextAware;
/***
* Action如何使用request,session,application:
* 要Action实现以下Aware接口,利用接口约定的方法注入.(推荐)
* 原因:减少了Struts2框架API对Action类的侵入,提高Action的灵活性.
* RequestAware、SessionAware、ApplicationAware、ServletRequestAware、ServletContextAware
* @author huawei
*
*/
public class BaseAction implements RequestAware,SessionAware,ApplicationAware,
ServletRequestAware,ServletContextAware{

public Map<String, Object> request;
public Map<String, Object> session;
public Map<String, Object> application;
public HttpServletRequest httpRequest;
public HttpSession httpSession;
public ServletContext httpApplication;

@Override
public void setServletContext(ServletContext httpApplication) {
this.httpApplication = httpApplication;
}

@Override
public void setServletRequest(HttpServletRequest httpRequest) {
this.httpRequest = httpRequest;
this.httpSession = httpRequest.getSession();
}

@Override
public void setApplication(Map<String, Object> application) {
this.application = application;
}

@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}

@Override
public void setRequest(Map<String, Object> request) {
this.request = request;
}
}

分享到:
评论

相关推荐

    Struts2的Action中获得request response session几种方法

    以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...

    struts2访问application、session以及request等web资源的示例代码

    在"struts2-web"这个压缩包文件中,可能包含了一个或多个示例项目,演示了如何在Struts2的Action类中实现对application、session和request域的访问。开发者可以运行这些示例,通过观察控制台输出或页面显示,了解...

    struts2访问request,session,application作用域

    在 Struts2 中,处理用户请求时经常需要使用到 Servlet 的内置对象,比如 Request、Session 和 Application,这些对象可以帮助开发者存储和获取数据。然而,在实际应用中,为了避免代码与 Servlet API 过度耦合,...

    Struts2访问request,session,application的四种方式

    OGNL是Struts2中强大的表达式语言,它允许开发者直接在JSP或Action中通过表达式来访问request、session和application中的数据。例如,`&lt;s:property value="#session['key']" /&gt;`可以在页面上显示session中的值。在...

    Struts2学习笔记(三) Struts2中访问request,session,和application对象

    Struts2作为一款流行的Java Web框架,极大地简化了MVC(模型-视图-控制器)应用的开发。...对于初学者,建议结合官方文档、教程和示例代码,逐步熟悉并掌握Struts2中的request、session和application对象的使用。

    struts2创建 request response session application

    在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...

    struts-bean:message使用

    5. **上下文和作用域**:消息可以存储在不同的作用域中,如request、session、application。在`&lt;message&gt;`标签中没有指定作用域时,默认使用页面作用域。 6. **参数替换**:你还可以在资源文件中使用占位符,例如`...

    Struts2源代码 包含struts-core和xwork-core源码

    - `ActionContext`封装了当前请求的上下文信息,包括ValueStack、Session、Request和Application等。 关联`struts-core.zip`和`xwork-core.zip`的源代码到Eclipse,对于开发者来说,有以下好处: - 直接查看源代码...

    Struts2通过使用ActionContext类获取request和response对象

    在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object&gt; ...

    struts2之Action访问Servlet API

    Struts2 框架提供了多种方式来访问 Servlet API,包括使用 ActionContext 类、实现接口和使用 ServletActionContext 类等。在本文中,我们将详细介绍 Struts2 访问 Servlet API 的几种方法。 一、使用 ...

    struts2学习心得

    2. Struts2不需要注意线程同步的问题,而Struts1则面临这个问题,因为Struts1对action创建的时候只创建一次,当多个用户同时访问这个action时,则必须出现这个同步的问题。而对Struts2来说,需要action时都要重新new...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    首先,需要使用 Struts2 提供的 StrutsSpringTestCase 来测试 Action。在这个类中,有一个 request 属性,可以用来 Mock 出 Session,以代替网页请求的真实 Session。这使得我们可以模拟用户的请求,测试 Action 的...

    struts2 ognl的用法

    ### Struts2中OGNL的使用详解 #### 一、OGNL简介 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取或设置一个对象图中的属性。它在Struts2框架中扮演着极其重要的角色,是Struts2实现...

    struts2简单案例

    它有内置对象如request、response、session、application等,方便处理HTTP请求和响应。 - **EL(Expression Language)**:EL简化了在JSP中获取和设置属性值的方式,无需编写Java脚本,使得JSP更加简洁。 - **JSTL...

    spring+hibernate+struts2使用笔记

    Struts2中提供了多种作用域,如request、session和application等,用于存储不同的数据。 - **ActionContext**:封装了当前执行的Action相关的所有信息。 - **SessionMap**:实现了Map接口,用于管理session范围内的...

    设计一个简单的网上名片管理系统,实现struts2增删改查等操作

    - Action对象的作用域:了解Action对象的四种作用域(request、session、application和global session),并选择合适的范围存放数据。 - Struts2标签和程序代码:学习使用Struts2提供的标签库来构建视图,同时理解...

    Struts2_OGNL

    4. 命名对象:包括在Servlet作用范围内的对象信息,如Request、Session、Application等。 在实际开发中,开发者可以通过OGNL表达式访问值栈中的Action属性、对象和其他信息。例如,使用&lt;s:property&gt;标签可以输出...

    Struts2内置拦截器简介

    - **说明**:用于控制Action的属性和状态信息存储的位置,可以选择存储在Request、Session或Application等不同的作用域中。 20. **Servlet Config (Servlet配置)** - **功能**:如果某个Action需要直接访问...

    struts2框架学习笔记整理

    - **通过ActionContext访问**:使用ActionContext获取Servlet API对象,如Request、Session、Application等。 - **ActionContext生命周期**:每个请求周期内创建一个ActionContext实例,并在请求结束后销毁。 #### ...

Global site tag (gtag.js) - Google Analytics