Struts2中访问Servlet API的几种方式

一:通过ActionContext类

Struts2提供了ActionContext类,struts2可以通过该类来实现与Servlet API的访问。

ActionContext类提供了如下几种方法:

1:Object get(Object key):类似于调用HttpServletRequest的getAttribute(String name)方法

2:Map getApplication():返回一个Map对象,该对象模拟了该应用的ServletContext实例。

3:static ActionContext getContext():这是个静态方法 获取系统的ActionContext实例

4:Map getParameters():获取所有的请求参数,类似于调用HttpServletRequest对象的getParameterMap()方法

5:Map getSession() 返回一个Map对象,该对象模拟了HttpSession 实例

6:void setApplication(Map application):传入一个Map实例,将Map实例的key-value转换成application的属性名-值。

7:void setSession(Map session):传入一个Map实例,将Map实例的key-value转换成application的属性名-值。

实例:通过ActionContext类实现简单的提示操作



二:Action直接访问Servlet API

Struts2提供了如下几个接口使Action可以直接访问到Servlet API:

1:ServletContextAware:实现该接口的Action可以直接访问Web应用的ServletContext实例

2:ServletRequestAware:实现该接口的Action可以直接访问Web应用的ServletRequest实例.

3:ServletResponseAware:实现该接口的Action可以直接访问Web应用的ServletRsponse实例.

以ServletResponseAware接口为例 实现该接口时,需要实现ServletResponse(HttpServletResponse response)方法内 response参数就Web客户端对用户的相应,我们应该先将此参数设置成 Action参数属性 从而才能在execute()方法中该HttpServletResponse对象,如图:通过实现ServletContextAware接口添加Cookie




此execute()通过ServletActionContext().getResponse()实现添加Cookie。

三:使用ServletActionContext访问Servlet API

Struts2还提供了一个ServletActionContext工具类用来访问Servlet API。

该类包含了一下几个静态方法:

1:static PageContext getPageContext():取得Web应用的PageContext对象。

2:static HttpServletRequest getRequest():取得Web应用的 HttpServletRequest对象。

1:static HttpServletResponse getResponse():取得Web应用的HttpServletResponse对象。

1:static ServletContext getServletContext():取得Web应用的ServletContext对象。

实例:通过ServletActionContext.getResponse()方法添加Cookie


最后都可以实现想要的结果:

猜你喜欢

转载自blog.csdn.net/qq_40285302/article/details/80222166
今日推荐