1、struts2的Action可以通过ActionContext来访问ServletAPI。下面是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的属性名,属性值
2、Action直接访问ServletAPI,
Struts2的Action可以实现下列接口,直接来访问ServletAPI:
- ServletContextAware:实现该接口的Action可以直接访问Web应用的ServletContext实例
- ServletRequestAware:实现该接口的Action可以直接访问用户请求的HttpServletRequest实例
- ServletResponseAware:实现该接口的Action可以直接访问服务器响应的HttpServletResponse实例
3、struts2还提供了一个ServletActionContext,这个类包含了如下一些静态方法:
- static PageContext getPageContext():取得Web应用的PageContext对象;
- static HttpServletRequest getRequest():取得web应用的HttpServletRequest对象;
- static HttpServletResponse getResponse():取得web应用的HttpServletResponse对象;
- static ServletContext getServletContext():取得web应用的ServletContext对象;