Web应用中凡是需要访谒的Servlet API就是HttpServletRequest、HttpSession和ServletContext,这三个接口分袂代表JSP内置东西中的request、session和application。
1.使用Struts2供给的ActionContext类来访谒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的属性名、属性值。
eg:
通过ActionContext设置application范畴的属性
ActionContext ctx = ActionContext.getContext(); ctx.getApplication.put("name","aaa");
通过ActionContext设置request范畴的属性
ctx.put("name","bbb");
2.虽然Struts2供给了ActionContext来访谒Servlet API,,但这种访谒不是直接获得Servlet API的实例,为了直接在Action中访谒Serlvet API,struts2供给了如下几个接口:
ServletContextAware:实现该接口的Action可以直接访谒Web应用的ServletContext实例。
ServletRequestAware:实现该接口的Action可以直接访谒用户请求的HttpServletRequest实例。
ServletResponseAware:实现该接口的Action可以直接访谒处事器响应的HttpSerlvetResponse实例。
3.使用ServletActionContext访谒Servlet API
为了能直接访谒Servlet API,Struts2还供给了一个ServletActionContext工具类,这个类包罗了如下几个静态要领。
static PageContext getPageContext():取得Web应用的PageContext的东西。
static HttpServletRequest getRequest():取得Web应用的HttpServletRequest东西。
static HttpServletResponse getResponse():取得Web应用的HttpServletResponse东西。
static ServletContext getServletContext():取得Web应用的ServletContext东西。