Struts2学习笔记-访问web元素的四种方式
1. 通过ActionContext来访问Map类型的request、session、application对象
private Map<String,Object> request; request=(Map<String,Object>)ActionContext.getContext().get("request"); private Map<String,Object> session; session=ActionContext.getContext().getSession(); private Map<String,Object> application; application=ActionContext.getContext().getApplication();
2. 通过实现RequestAware、SessionAware、ApplicationAware接口来访问Map类型的request、session、application对象(IoC方式)(推荐使用)
private Map<String,Object> request; private Map<String,Object> session; private Map<String,Object> application; public void setRequest(Map<String, Object> request) { this.request=request; } public void setSession(Map<String, Object> session) { this.session=session; } public void setApplication(Map<String, Object> application) { this.application=application; }
3. 通过ServletActionContext来访问Servlet API类型的HttpServletRequest、 HttpSession、 ServletContext对象(依赖于Servlet API 方式)
private HttpServletRequest request; private HttpSession session; private ServletContext application; request=ServletActionContext.getRequest(); session=request.getSession(); application=session.getServletContext();
4. 通过实现ServletRequestAware接口来访问Servlet API类型的HttpServletRequest、 HttpSession、 ServletContext对象(IoC方式)
private HttpServletRequest request; private HttpSession session; private ServletContext application; public void setServletRequest(HttpServletRequest request) { session=request.getSession(); application=session.getServletContext(); }
其中,前两种方式与Servlet API解耦合,后两种方式与Servlet API耦合,推荐使用第二种方式。