STRUTS2獲得session和request
在struts1中,獲得到系統的request或者session物件非常方便,都是按照形參傳遞的,但是在struts2中,request和session都被隱藏了
struts提供兩種方式訪問session和request,其中比較常用的是利用SPRING裡面所說的IOC即控制反轉
IOC方式:
action類實現ServletRequestAware介面,並新建一個HttpServletRequest request
public class UserLoginAction extends ActionSupport implements ServletRequestAware{
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
然後可以生成的request得到物件,如request.getRemoteAddr()
action類實現SessionAware介面,並建立一個MAP物件session
public class UserLoginAction extends ActionSupport implements ServletRequestAware,SessionAware{
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
public void setSession(Map session) {
this.session=session;
}
非IOC方式
非Ioc方式
這種方式主要是利用了com.opensymphony.xwork2.ActionContext類以及org.apache.struts2.ServletActionContext類,具體的方法如下所示。
獲得request物件:
A . HttpServletRequest request = ServletActionContext.getRequest ();
B.ActionContext ct= ActionContext.getContext()
HttpServletRequest request=
(HttpServletRequest)ct.get(ServletActionContext. HTTP_REQUEST );
獲得session物件:
在Struts2中底層的session都被封裝成了Map型別,我們稱之為SessionMap,而平常我們所說的session則是指HttpSession物件,具體的獲得方法如下所示。
A.Map session=ActionContext.getSession();
B.Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION);
得到這個SessionMap之後我們就可以對session進行讀寫了,如果我們想得到原始的HttpSession可以首先得到HttpServletRequest物件,然後通過request.getSession()來取得原始的HttpSession物件。一般情況下SessionMap已經可以完成所有的工作,我們不必再去碰底層的session了。
相關文章
- 【Struts2】Session的獲取Session
- 在Struts2中ValueStack、ActionContext、ServletContext、request、session關係分析ContextServletSession
- struts2中session使用Session
- Session store not set on request.Session
- Laravel - Session store not set on requestLaravelSession
- session監聽器怎樣得到request和responseSession
- SpringMVC(3)-request域和session域的作用和區別SpringMVCSession
- 架構之路(9):Session Per Request架構Session
- 架構之路(九)Session Per Request架構Session
- 使用gin,gin-contrib/sessions不同request path獲取不到sessionSession
- Struts2教程6:在Action類中獲得HttpServletResponse物件的四種方法HTTPServlet物件
- request 獲取不到 CookieCookie
- 終於搞懂Spring中Scope為Request和Session的Bean了SpringSessionBean
- scope="session"和scope="request"--丟擲異常非常的bug+垃圾Session
- 如和獲得系統熱鍵
- 透過sql查詢獲得當前session的trace檔名稱SQLSession
- ORACLE EBS的Request ID和後臺資料庫Session ID關聯Oracle資料庫Session
- Struts2中使用Session的兩種方法Session
- 獲取本session的sid和serial#Session
- 如何獲得Session物件及在Hibernate.cfg.xml檔案中的配置Session物件XML
- webwork問題:經過研究表明,ww標籤庫也是透過request獲得資料的Web
- Laravel request 獲取路由引數Laravel路由
- Hiberante問題:session關閉後如何獲得該物件的懶載入物件。Session物件
- Scheduler&Task&Worker&Thread&Request&Session&Connection OF MSSQLthreadSessionSQL
- FND_REQUEST.SUBMIT_REQUEST和 FND_CONCURRENT.WAIT_FOR_REQUESTMITAI
- .net post提交和獲得html頁面的原始碼HTML原始碼
- Python如何獲取request response bodyPython
- EBS R12的Concurrent Request ID和資料庫Session ID的關聯資料庫Session
- Request和Response物件物件
- php獲得時間PHP
- Spring學習歷程---request,session與globalSession作用域SpringSession
- Git Fork Pull Request(PR)和Merge Request(MR)Git
- Django中的request.GET和request.POSTDjango
- Struts2筆記08 獲取值棧物件筆記物件
- Struts2中獲取請求引數
- SSH獲取SESSION時報NullPointExceptionSessionNullException
- jquery獲得option的值和對option進行操作jQuery
- 文字框獲得和失去焦點程式碼例項