Ⅰ、和servelet API 解耦的方式:只能访问到有限的资源

  (1)通过ActionContext的getXXX方法获取相关资源

    例:

public class TestActionContext extends ActionSupport{
    
    private static final long serialVersionUID = 1L;

@Override
    public String execute() throws Exception {
        ActionContext ac = ActionContext.getContext();
        //获取session
        Map<String, Object> session = ac.getSession();
        session.put("sessionKey", "sessionValue");
        //获取request
        Map<String, Object> request = (Map<String, Object>) ac.get("request");
        //获取application
        Map<String, Object> application = ac.getApplication();
        
        return "SUCCESS";
    }

     

  (2)通过继承XXXAware接口获取相关资源

    例:

  public class TestAware extends ActionSupport implements RequestAware,ApplicationAware,SessionAware{

private Map<String,Object> session;
    private Map<String,Object> application;
    private Map<String,Object> request;
    
    //获取session
    @Override
    public void setSession(Map<String, Object> session) {
        this.session = session;    
    }
    
    //获取application
    @Override
    public void setApplication(Map<String, Object> application) {
        this.application = application;        
    }

//获取request
    @Override
    public void setRequest(Map<String, Object> request) {
        this.request = request;
    }
    @Override
    public String execute() throws Exception {
        // TODO 自动生成的方法存根
        return super.execute();
    }    
}

      

   如果类中有多个方法使用到web资源,一般使用(2)通过继承XXXAware接口获取相关资源

Ⅱ、和servelet API耦合的方式:可以访问到更多的资源和方法

  (1)通过ServletActionContext的getXXX方法获取相关资源

    例:

  public class TestServltActionContext extends ActionSupport {
    @Override
    public String execute() throws Exception {
        //获取request
        HttpServletRequest request =ServletActionContext.getRequest();
        //获取session
        HttpSession session =  ServletActionContext.getRequest().getSession();
        return "SUCCESS";
    }
}

   (2)通过继承ServletXXXAware接口获取相关资源

    例:

public class TestServletXXXAware extends ActionSupport implements ServletRequestAware{
    private HttpServletRequest request;
    @Override
    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }
}

    一般推荐使用(2)通过继承ServletXXXAware接口获取相关资源

转载于:https://www.cnblogs.com/wyTT/p/4727561.html

struts2_action获取web资源的两种方式相关推荐

  1. html中获取modelandview中的json数据_从Bitmap中获取YUV数据的两种方式

    从Bitmap中我们能获取到的是RGB颜色分量,当需要获取YUV数据的时候,则需要先提取R,G,B分量的值,然后将RGB转化为YUV(根据具体的YUV的排列格式做相应的Y,U,V分量的排列) 所以这篇 ...

  2. Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式

    Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以从代码中简单理解成Receiver方式是通过zookeeper来连接kafka队列,Direct方 ...

  3. Android获取IP地址的两种方式(准确版)

    原文:https://blog.csdn.net/sinat_16458039/article/details/50260589 最近看了好多网上获取IP地址的例子,发现好多都不完全准确,这里我写一下 ...

  4. kubernetes创建资源的两种方式

    一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令行的方式直接创建,比如: kubectl run httpd-app --image ...

  5. Express全系列教程之(四):获取Post参数的两种方式

    一.关于POST请求 post方法作为http请求很重要的一部分,几乎所有的网站都有用到它,与get不同,post请求更像是在服务器上做修改操作,它一般用于数据资源的更新. 相比于get请求,post ...

  6. k8s 创建资源的两种方式 - 每天5分钟玩转 Docker 容器技术(124)

    命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建,比如: kubectl run nginx-deployment --image=nginx ...

  7. 第5篇K8S创建资源的两种方式

      一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令直接创建,比如: kubectl run httpd-app --image=r ...

  8. iOS 通过URL网络获取XML数据的两种方式

    下面简单介绍如何通过url获取xml的两种方式. 第一种方式相对简单,使用NSData的构造函数dataWithContentsOfURL:不多解释,直接上代码咯. NSURL *url = [NSU ...

  9. spring boot controller 初始化_使用 Spring 快速创建 web 应用的两种方式

    介绍 本篇文章主要介绍,如何使用 Spring 开发一个 Web 应用. 我们将研究用 Spring Boot 开发一个 web 应用,并研究用非 Spring Boot 的方法. 我们将主要使用 J ...

最新文章

  1. Oracle的SQL语句
  2. matlab 算法设计,计算方法——算法设计及其MATLAB实现
  3. python3 asyncio loop 使用线程池原理
  4. Jar包反编译后修改源码再编译
  5. python egg文件安装_Python 和 egg 文件
  6. P1476 休息中的小呆
  7. micropython安装第三方库_【python操作】python安装第三方库的方法总结
  8. mockjs(接口服务代理)
  9. 计算机里什么文件无法删除,电脑上的文件删不掉怎么办
  10. 详解 Ops 智能运维机器人,故障处理又快又准!
  11. 1.1确定分数与浮点数值之间的近似相等性。
  12. 20200121每日一句
  13. Kubernetes API的版本控制,分组,对象,访问控制
  14. php运算符包括,php运算符有哪些 - php完全自学手册 - php中文网手册
  15. 堆积图--MatplotLib
  16. 钢笔墨水能否代替打印机墨水_打印机墨水怎么分类?
  17. 表格内容单/多行展示(一)- 单行/多行显示的方法
  18. VS2017 常用函数与数据类型-笔记
  19. 简单的学生网页作业源码 基于html css javascript仿淘宝购物商城设计毕业论文源码
  20. Android7.1电池管理部分的一些笔记

热门文章

  1. 微信小程序Demo 优惠券展示 / 领取 / 赠送 / 口令优惠券
  2. 盈利困境下的途虎养车,如何在新赛道抢占先机?
  3. 推荐一个vue, angular的组件分享网站--轮子工厂
  4. 背景图片html写法,CSS3背景图片background属性简写/连写
  5. 应届毕业生个人简历表-Word简历可编辑下载
  6. GD32F303使用笔记——SPI0(一)
  7. 《多媒体在初中数学中的运用研究》研究论文
  8. 技术帖| 全NDI ®和NDI |HX,让技术工作更为简单的NDI协议
  9. 用opencv实现人脸检测-实时人物情绪识别(基础版)
  10. 百度经纬度转高德经纬度(从高德SDK抽取)