1.可以通过struts2 中的ActionContext类来访问,
以下几个 方法为其常用:
Static ActionContext getContext(): 获取ActionContext实例;
Object get(Object key): 类似于request.getAttribute(String name);
Map getParameters():获取所有的请求参数,类似于request.getParameterMap();
Map getApplication(): 相当于ServletContext实例,返回的是Map对象
Map getSession() :返回类似于HttpSession的 实例
void setApplication(Map application): 直接传入一个Map实例,将Map实例里的key-value对转换成application的key-value
void setSession(Map session): 直接传入一个Map实例,将Map实例里的key-value对转换成session的key-value
下面是一个例子:
2.IoC方式 IoC(控制反转)是Spring里面的特征之一,也就是依赖注 入。 最常用
获得request对象:
- action实现ServletRequestAware接口
- action中声明一个HttpServletRequest类型的变量
- 在action中实现ServletRequestAware接口的setServletRequest方法,如下
private HttpServletRequest request;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
获得Session(SessionAware)、Response(ServletResponseAware)、Context(ServletContextAware)对象也是同样方法 (注意,此时的session是Map类型)3、直接从ServletActionContext中获取
这个类提供了如下几个静态方法
PageContext getPageContext(): 取得PageContext对象
HttpServletRequest getRequest(): 取得HttpServletRequest
HttpServletResponse getResponse():
ServletContext getServletContext():
public LoginAction3() {
request = ServletActionContext .getRequest();
session = request.getSession();
application = session.getServletContext();
}