`
hzywy
  • 浏览: 168619 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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

阅读更多

  方式1--》访问Map类型的:

package cn.pdsu.edu;
import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * 普通方式:Map类型的request,session,application
 */
public class ActionDemo1 extends ActionSupport {
    private Map<String,Object> request;
    private Map<String,Object> session;
    private Map<String,Object> application;
   
    public ActionDemo1() {
        this.request = (Map)ActionContext.getContext().get("request");
        this.session = ActionContext.getContext().getSession();
        this.application = ActionContext.getContext().getApplication();
    }

    @Override
    public String execute() throws Exception {
        request.put("message", "message");
        session.put("message", "message");
        application.put("message", "message");
        return SUCCESS;
    }
}

方式2--》访问map类型的:

package cn.pdsu.edu;
import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 *接口方式:Map类型的request,session,application
 */
public class ActionDemo2 extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
    private Map<String,Object> request;
    private Map<String,Object> session;
    private Map<String,Object> application;

    @Override
    public String execute() throws Exception {
        request.put("message", "message");
        session.put("message", "message");
        application.put("message", "message");
        return SUCCESS;
    }

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

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

    public void setApplication(Map<String, Object> application) {
        this.application = application;
    }
}
方式3--》访问HttpServletRequest

package cn.pdsu.edu;
import java.util.Map;

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

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * 普通方式:Servlet类型的request,session,application
 */
public class ActionDemo3 extends ActionSupport {
    private HttpServletRequest request;
    private HttpSession session;
    private ServletContext application;

    public ActionDemo3() {
        request = ServletActionContext.getRequest();
        session = request.getSession();
        application = session.getServletContext();
    }

    @Override
    public String execute() throws Exception {
        request.setAttribute("message", "message");
        session.setAttribute("message", "message");
        application.setAttribute("message", "message");
        return SUCCESS;
    }
}
方式4--》通过接口访问HttpServletRequest

package cn.pdsu.edu;
import java.util.Map;

import javax.management.j2ee.statistics.ServletStats;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;
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 com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * 接口方式:Servlet类型的request,session,application
 */
public class ActionDemo4 extends ActionSupport implements ServletRequestAware{
    private HttpServletRequest request;
    private HttpSession session;
    private ServletContext application;

    @Override
    public String execute() throws Exception {
        request.setAttribute("message", "message");
        session.setAttribute("message", "message");
        application.setAttribute("message", "message");
        return SUCCESS;
    }

    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
        this.session = request.getSession();
        this.application = session.getServletContext();
    }
}


分享到:
评论

相关推荐

    struts2访问request,session,application作用域

    在 Struts2 的 Action 类中,可以通过以下方式间接地访问到 Request、Session 和 Application: ```java // 使用 ActionContext 来获取 ActionContext context = ActionContext.getContext(); Map request = (Map)...

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

    在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...

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

    在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...

    struts2创建 request response session application

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

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

    Struts2的拦截器机制也是获取request、response、session的一种方式。默认情况下,Struts2已经配置了一些拦截器,例如`servletConfig`拦截器,它可以提供对servlet API的访问,包括request、response、session等。 ...

    STRUTS2获得作用域、参数响应对象及三种符号说明

    ### STRUTS2获得作用域、参数响应对象及三种符号说明 #### 一、概述 在Struts2框架中,为了更好地管理Web应用程序中的请求、会话和应用范围的数据,Struts2提供了一系列的工具和机制。这包括了对`RequestMap`、`...

    struts2之Action访问Servlet API

    在本文中,我们将详细介绍 Struts2 访问 Servlet API 的几种方法。 一、使用 ActionContext 类 ActionContext 类是 Struts2 框架中一个重要的类,它提供了多种方法来访问 Servlet API。该类可以模拟获取 request、...

    struts2学习心得

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

    struts2标签使用方法

    Struts2 标签可以访问不同的作用域的类,例如 request、session、application 等。 标签的优点 Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展...

    struts2 ognl的用法

    - 访问不同范围内的属性:如`#attr.userName`会按照`request &gt; session &gt; application`的顺序查找`userName`属性。 - **条件筛选**:在集合中使用OGNL进行条件筛选,例如`books.{?#this.price&gt;35}`表示筛选价格...

    Struts2_OGNL

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

    Struts2访问Servlet的三种方式

    Struts2 访问 Servlet 的三种方式 Struts2 框架中,Action 并没有直接和 Servlet API 耦合,这使得 Action 可以更好地进行单元测试。然而,在实现业务逻辑时,经常需要访问 Servlet 中的对象,如 request、session ...

    struts2中#号的用法

    在Struts2框架中,`#`符号是一种非常重要的语法元素,主要用于访问上下文中的变量。本文将详细介绍`#`符号的使用方法及其应用场景,帮助读者更好地理解和掌握Struts2框架的相关知识。 #### 一、Struts2简介 Struts...

    Struts2五种数据封装Demo

    在这个“Struts2五种数据封装Demo”中,我们将深入探讨Struts2的数据封装机制,以及如何通过配置文件来操作Servlet的三大核心对象——Request、Session和Application。同时,我们还将了解如何从表单中获取数据并进行...

    struts2简单案例

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

    struts2的API耦合与动态方法调用

    Struts2是一个流行的Java web开发框架,它提供了一种组织和控制MVC(模型-视图-控制器)架构的方式。本文将重点讨论Struts2中的API耦合和动态方法调用,这两种特性对于理解框架的工作原理和提高代码的灵活性至关重要...

    struts2框架学习笔记整理

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

    struts2标签库

    ValueStack是Struts2框架中的核心概念,它是一个对象栈,包含了Action对象、模型对象以及不同作用域的固定名称对象(如#application、#session、#request等)。值栈使得标签库可以直接访问对象,而不需要在视图层和...

Global site tag (gtag.js) - Google Analytics