Struts2中獲取HttpServletRequest,HttpSession
在沒有使用Struts2之前,都習慣使用HttpServletRequest和HttpSession物件來操作相關引數,下面介紹一下在Struts2中訪問隱藏的HttpServletRequest和HttpSession的兩種方法:
1.非Ioc方式
這種方式主要是利用了com.opensymphony.xwork2.ActionContext類以及ora.apache.struts2.ServletActionContext類,具體的方法如下所示。
獲得request物件:
1).HttpServletRequest request = ServletActionContext.getRequest ();
2).ActionContext ct= ActionContext.getContext();
HttpServletRequest request=
(HttpServletRequest)ct.get(ServletActionContext.HTTP_REQUEST);
獲得session物件:
在Struts2中底層的session都被封裝成了Map型別,我們稱之為SessionMap,而平常我們所說的session則是指HttpSession物件,具體的獲得方法如下所示。
1).Map session=ActionContext.getSession();
2).Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION);
得到這個SessionMap之後我們就可以對session進行讀寫了,如果我們想得到原始的HttpSession可以首先得到HttpServletRequest物件,然後通過request.getSession()來取得原始的HttpSession物件。一般情況下SessionMap已經可以完成所有的工作,我們不必再去強行使用底層的session了。