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. 数据结构之平衡二叉树(AVL)

    一:平衡二叉树特点:平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树 ...

  2. Linux服务器集群系统(四)--转

    引用地址:http://www.linuxvirtualserver.org/zh/lvs4.html LVS集群的负载调度 章文嵩 (wensong@linux-vs.org) 2002 年 5 月 ...

  3. solr 高亮配置

    solrj中配置: 两种高亮开启设置 // solrParams.setHighlight(true); solrParams.setParam("hl", "true& ...

  4. Hadoop学习笔记(2) ——解读Hello World

    Hadoop学习笔记(2) ——解读Hello World 上一章中,我们把hadoop下载.安装.运行起来,最后还执行了一个Hello world程序,看到了结果.现在我们就来解读一下这个Hello ...

  5. iOS 画图讲解2

    1.图片水印 //layer上下文只能显示在drawRect里 //当开启上下文时,绘制图形即可在viewDidLoad中实现 //位图的上下文 //UIGraphicsBeginImageConte ...

  6. Oracle基础(五) 权限管理

    一.数据库权限分类 权限是指用户对某个功能是否具有执行的权利.在Oracle中,权限分为系统权限和对象权限. 1.系统权限 系统规定用户使用数据库的权限.例如创建表空间,创建表,删除表的权利.这些都属 ...

  7. 跨域 HTTP 请求

    如果你需要从不同的服务器(不同域名)上获取数据就需要使用跨域 HTTP 请求. 跨域请求在网页上非常常见.很多网页从不同服务器上载入 CSS, 图片,Js脚本等. 在现代浏览器中,为了数据的安全,所有 ...

  8. 剑指Offer38 数组所有数字出现两次,只有两个出现了一次,找出这两个数字

    /************************************************************************* > File Name: 38_Number ...

  9. 2075 yh女朋友的危机、2544 拯救小矮人

    Codevs2075和2544是一道题,直接A过. 2075 yh女朋友的危机  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果   ...

  10. html+css学习总结

    HTML与css学习总结 一:html概念 1. html是一种描述网页的语言,并不是计算机语言这要分清楚:标记语言是运用一套标记标签描述网页的: 注意点: ①标签字母都要小写,标签一般都是成对出现, ...