struts2:Action访问ServletAPI

6 篇文章 0 订阅

在Strut2中访问Servlet API有三种方式:

1、通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API。

步骤:
1).创建一个ActionContext

  • ActionContext context=ActionContext.getContext();

2).通过context对象获取Servlet API

  • Map<String,Object> getApplication() 获取的是application中存储的所有信息 
  • Map<String,Object> getParameters() 相当于 request.getParameterMap();
  • Map<String,Object> getSession(); 获取的是session中存储的所有信息.
  • put(String key,Object value); 就相当于request.setAttribute();
  • Object get(String key) 就相当于request.getAttribute();

2、通过注入方式(真正的Servlet API)

通过实现*Aware接口获得Servlet API,比如:

  • ServletContextAware : 注入ServletContext对象
  • ServletRequestAware :注入 request对象
  • ServletResponseAware : 注入response对象

比如获取HttpServletRequest对象:

 

 1 public class TestAction extends ActionSupport implements ServletRequestAware {
 2     HttpServletRequest request;
 3     @Override
 4     public String execute() {
 5         request.setAttribute("name", "requestTest");
 6         return "success";
 7     }
 8     
 9     @Override
10     public void setServletRequest(HttpServletRequest request) {
11         this.request = request;
12     }
13 
14 }

 

3、通过ServletActionContext(真正的Servlet API)

通过ServletActionContext类中提供了静态方法可以直接获取Servlet API:

1 //获取request
2 HttpServletRequest request = ServletActionContext.getRequest();
3 //获取session
4 HttpSession session = request.getSession();
5 //获取context
6 ServletContext context = ServletActionContext.getServletContext();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值