在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:

//获取request
HttpServletRequest request = ServletActionContext.getRequest();
//获取session
HttpSession session = request.getSession();
//获取context
 ServletContext context = ServletActionContext.getServletContext();

 

 

开发人员转岗好消息!!

 

Action访问Servlet API_二维码

 

 

以上代码纯属原创 ,为了能够共同进步互相学习,如有问题或更好建议可以联系holly老师:

 

每周五晚: 斗鱼直播讲堂(房间号672217)

博客园: 红酒人生(有大量技术帖子)

 

想学习java,安卓,大数据,数据库,web开发,前端开发 可以来“北大青鸟南京中博软件学院”找 Holly老师 ,欢迎来咨询!

长按下方二维码关注Holly老师公众号,一起学java吧!

Action访问Servlet API_java_02