Struts2 Servlet解耦

struts2对应封装
HttpServletRequest-------->RequestMap
HttpServletSession-------->SessionMap
ServletContext-------->ApplicationMap


ActionContext与Servlet api的解耦

在com.opensymphony.xwork2.ActionContext类中存在一个Map对象的context 类

首先通过ActionContext类的静态方法getContext()方法获得当前相关的一个ActionContext实例

public Object get(Object key)方法,就相当于HttpServletRequest.getAttribute()
public void put(Object key, Object value)对应HttpServletRequest.setAttribute()

public Map<String, Object> getParameters()对应HttpServletRequest.getParameterMap()
public Map<String, Object> getSession()方法对应javax.servlet.http.HttpSession
session.put(Object key, Object value)对应Servlet编程中的HttpSession.setAttribute(…)

也就是说,ActionContext能够获得三个Map类型的Request, Session, Application对象
ActionContext有一个好处,就是它已经将底层的Servlet进行了转化,比如它将session转化成Map

所以在struts中用session,request,Application完全可以创建一个map对象的

有好的放方法,望诸位大神给出意见,我好学习一下,我只是个小菜鸟。单纯看法

你可能感兴趣的:(编程,struts)