Struts2中的Action没有与任何Servlet API耦合,,但对于WEB应用的控制器而言,不访问Servlet API几乎是不可能的,例如需要跟踪HTTP Session状态等。Struts2中提供了一个ActionContext类,Struts2的Action可以通过该类来访问Servlet API。

ActionContext类中包含的几个常用方法:

  Object get(Object key):该方法类似于调用HttpServletRequest的getAttribute(String name)方法。

  Map getApplication:返回一个Map对象,该对象模拟了该应用的ServletContext实例。

  static ActionContext getContext():静态方法,获取系统的ActionContext实例。

  Map getParameters():获取所有的请求参数。类似于调用HttpServletRequest对象的getParameterMap()方法。

  Map getSession():返回一个Map对象,该Map对象模拟了HttpSession实例。

  void setApplication(Map application):直接传入一个Map实例,将该Map实例里的key-value对转换成application的属性名、属性值。

  void setSession(Map session):直接传入一个Map实例,将该Map实例里的key-value对转换成session的属性名、属性值。

例子:

  public class TextAction implements Action{

    public String execute() throws Exception{

       ActionContext ctx=ActionContext.getContext(); //获取ActionContext实例

       Integet counter=(Integer)ctx.getApplication().get("counter");   //获取application范围的属性值

       return SUCCESS; 

}

}

虽然struts2提供了ActionContext来访问Servlet API,但这种访问不是直接获得servlet API的实例,为了在Action中访问Servlet API,struts2中还提供了以下几个接口:

ServletContextAware:实现该接口的Action可以直接访问WEB应用的ServletContext实例。

ServletRequestAware:实现该接口的Action可以直接访问WEB应用的HttpServletRequest实例。

ServletResponseAware:实现该接口的Action可以直接访问服务器响应的HttpServletResponse实例。

除此之外,为了能直接访问Servlet API,struts2还提供了一个ServletActionContext工具类,这个类包含了如下几个静态方法:

static PageContext getPageContext():取得WEB应用的PageContext对象。

static HttpServletRequset getRequets():取得Web应用的HttpServletRequset对象。

static HttpServletRsponse getResponse():取得WEB应用的HttpServletResponse对象。

static ServletContext getServletContext():取得WEB应用的ServletContext对象。

struts2中访问servlet API的更多相关文章

  1. Struts2中使用Servlet API步骤

    Struts2中使用Servlet API步骤 Action类中声明request等对象 Map<String, Object> request; 获得ActionContext实例 Ac ...

  2. Struts2(八)访问Servlet API

    一.Struts2中的Servlet API 1.1.struts2的Action实现了MVC中C层的作用 针对请求用户显示不同的信息 登录后段保存用户信息 ----session 保存当前在线人数等 ...

  3. java框架之Struts2(2)-访问Servlet API及请求数据封装

    准备 为后面测试示例编写代码及配置如下: package com.zze.bean; import java.util.Date; public class User { private String ...

  4. Struts 2中访问Servlet API的几种方法小结

    1.使用ActionContext Action运行期间所用到的数据都保存在ActionContext中,例如session.客户端提交的参数等,ActionContext是Action的一个上下文对 ...

  5. Struts2中获取servlet API的几种方式

    struts2是一个全新的MVC框架,如今被广大的企业和开发者所使用,它的功能非常强大.这给我们在使用servlet 纯java代码写项目的时候带来了福音.但是一般来说,我们的项目不到一定规模并不需要 ...

  6. struts2的action访问servlet API的三种方法

    学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...

  7. Struts2学习笔记(五)——Action访问Servlet API

    在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1 ...

  8. Action访问Servlet API

    访问Servlet API 1.通过ActionContent类访问Servlet API ActionContext中访问Servlet API的几个常用的方法: (1)Map getApplica ...

  9. struts2 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

    Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...

随机推荐

  1. [CodeEdit--Sublime]一些好用的Plugins

    Sublime Text 3 Plugins (**)packet control:plugin包管理器 (**)netuts-fetch: (**)markdown editing:Markdown ...

  2. c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)

       一.方法参数的类型----值类型和引用类型 当方法传递的参数是值类型时,变量的栈数据会完整地复制到目标参数中即实参和形参中的数据相同但存放在内存的不同位置.所以,在目标方法中对形参所做的更改不会 ...

  3. Hibernate Validation注解列表

    下面是主要的验证注解及说明: 注解 适用的数据类型 说明 @AssertFalse Boolean, boolean 验证注解的元素值是false @AssertTrue Boolean, boole ...

  4. Line in和Mic in的区别及使用

    Line in和Mic in的区别及使用 我们的电脑声卡上,一般都会有Line in和Mic in两个接口,翻译成中文就是“线性输入”和“麦克风输入”,这两个都是输入端口,但是还是有区别的: 1.Li ...

  5. ios uitableviewcell动态计算高度

    #import <UIKit/UIKit.h> @interface TestCell : UITableViewCell @property (weak, nonatomic) IBOu ...

  6. Android(java)学习笔记267:Android线程池形态

    1. 线程池简介  多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力.     假设一个服务器完成一项任务所需时间为:T1 创建线程时间, ...

  7. uva 216 Getting in Line 最短路,全排列暴力做法

    题目给出离散的点,要求求出一笔把所有点都连上的最短路径. 最多才8个点,果断用暴力求. 用next_permutation举出全排列,计算出路程,记录最短路径. 这题也可以用dfs回溯暴力,但是用最小 ...

  8. 《UNIX环境高级编程》学习心得 三

    输入和输出 1.文件描述符 文件描述符(file descriptor)可以理解为内核在某个进程中访问一个文件时,内核向进程返回的一个非负整数.在内核使用open或creat打开一个现有文件或者创建一 ...

  9. 第03篇. 标准Web项目Jetty9内嵌API简单启动

    一直以来,想改变一些自己早已经习惯的事情. 到了一定年龄,便要学会寡言,每一句话都要有用,有重量. 喜怒不形于色,大事淡然,有自己的底线. --胖先生 昨天,简单的说了一下关于Jetty9的配置,大家 ...

  10. [CAMCOCO][C#]我的系统架构.服务器端.(四)----Model层 实体的自我验证

    这是Model的第二篇,上一篇点这里 这块完全是扒了@何镇汐大神博客里的教程实现的,在这之前完全没想到数据验证居然可以这样做!!在此表示严重感谢!!! 点击这里可以去了解这个方法的原理,老胡估计自己是 ...