1. 程式人生 > >Struts2中獲取HttpServletRequest,HttpSession

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了。