第一種方法:
Request:
通過com.opensymphony.xwork2
.ActionContext類以及org.apache.struts
2
.ServletActionContext類
HttpServletRequest
request
= ServletActionContext.getRequest
();
ActionContext context= ActionContext.getContext()
HttpServletRequest
request
=(HttpServletRequest
)ct.get(ServletActionContext.HTTP_REQUEST
);
Session:
Map session=ActionContext.getSession();
Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION);
註:sturt2中session都被封裝成了Map類型,我們稱之為SessionMap如果我們想得到原始的HttpSession可以首先得到HttpServletRequest
對象,然後通過request
.getSession()來取得原始的HttpSession對象。一般情況下SessionMap已經可以完成所有的工作,我們不必再去碰底層的session了。
第二種方法:
public class TestAction implements ServletRequestAware, ServletResponseAware {<br /> protected HttpServletRequest request;<br /> protected HttpServletResponse response;<br /> protected HttpSession session;<br /> @Override<br /> public void setServletRequest(HttpServletRequest httpServletRequest) {<br /> this.request = httpServletRequest;<br /> this.session = httpServletRequest.getSession();<br /> }<br /> @Override<br /> public void setServletResponse(HttpServletResponse httpServletResponse) {<br /> this.response = httpServletResponse;<br /> }<br />}<br />