在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对象:
-
public class TestAction extends ActionSupport implements ServletRequestAware {
-
HttpServletRequest request;
-
@Override
-
public String execute() {
-
request.setAttribute("name", "requestTest");
-
return "success";
-
}
-
-
@Override
-
public void setServletRequest(HttpServletRequest request) {
-
this.request = request;
-
}
-
-
}
3、通过ServletActionContext(真正的Servlet API)
通过ServletActionContext类中提供了静态方法可以直接获取Servlet API:
//获取request
HttpServletRequest request = ServletActionContext.getRequest();
//获取session
HttpSession session = request.getSession();
//获取context
ServletContext context = ServletActionContext.getServletContext();
开发人员转岗好消息!!
以上代码纯属原创 ,为了能够共同进步互相学习,如有问题或更好建议可以联系holly老师:
每周五晚: 斗鱼直播讲堂(房间号672217)
博客园: 红酒人生(有大量技术帖子)
想学习java,安卓,大数据,数据库,web开发,前端开发 可以来“北大青鸟南京中博软件学院”找 Holly老师 ,欢迎来咨询!
长按下方二维码关注Holly老师公众号,一起学java吧!