Struts2中Action访问Servlet API的三种方法
来源:互联网 发布:sql id=@id 编辑:程序博客网 时间:2024/05/04 14:36
Struts2的Action并未直接与任何Servlet API耦合,这是Struts2的一个改良之处,因为Action类不再与Servlet API耦合,从而能更轻松的测试该Action。
但对于Web应用的控制器而言,不访问Servlet API几乎是不可能的,例如跟踪HTTP Session状态等。Struts2框架提供了一种更轻松的方式来访问Servlet API。Web应用中通常需要访问的Servlet API就是HttpServletRequest,HttpSession和ServletContext,这三个类分别代表JSP内置对象中的request,session和appliaction。通过Action访问Servlet API有以下三种方法:
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的属性名、属性值。
虽然Struts2提供了ActionContext来访问ServletAPI,但是并不能直接获得ServletAPI的实例。但是Struts2提供了以下接口,
ServletContextAware:实现该接口的Action可以直接访问ServletContext实例。
ServletRequestAware:实现该接口的Action可以直接访问HttpServletRequest实例。
ServletResponseAware:实现该接口的Action可以直接访问HttpServletResponse实例。
除此之外,为了能直接访问Servlet API,Struts2还提供了一个ServletActionContext,其静态方法有:getPageContext(),getRequest(),getResponse(),getServletContext()
上面三种方法的区别,方法一取得的实例是经过Struts2包装过后的,而后两种方法取得的实例是原生态的。但都有异曲同工之妙。
- Struts2中Action访问Servlet API的三种方法
- Struts2中Action访问Servlet API的三种方法
- Struts2中Action访问Servlet API的三种方法
- Struts2中Action访问Servlet API的三种方法
- Struts2中Action访问Servlet API的三种方法
- Struts2中Action访问Servlet API的两种方法
- Struts2中Action访问Servlet API的两种方法
- Struts2中Action访问Servlet API的两种方法
- struts2中,action访问servlet api的两种方式
- Struts的 action访问servlet API的三种方法
- Action 访问Servlet API的三种方法
- Struts2.x学习三(Action中访问Servlet API )
- Struts2 访问 Servlet API 的三种方法
- 关于struts2访问servlet API的三种方法详解
- 【Struts2进阶】Struts2的Action访问Servlet API 的 三种方式
- Struts2中Action访问Servlet API总结
- Struts2中action 访问servlet API
- Struts2中Action访问Servlet API
- expect 的安装
- 数据结构的作业
- C# 文件写入
- 最近
- 汇编大小写转换的一个技巧~~
- Struts2中Action访问Servlet API的三种方法
- bash、dash(/bin/bash和/bin/sh)
- C++ Smart Pointers 和“与继承有关的”类型转换
- 用nagios来监控网络服务器和网络服务
- mysql
- AMD导演“云”上的日子
- error C2660: 'Gdiplus::GdiplusBase::operator new' : function does not take 3 parameters
- sql2005移植到oracle的艰辛过程
- 好的编程学习网站