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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值