【Struts2】Session的獲取
Struts2中Session的獲取下面3中方式;
方式一:
ActionContext.getContext.getSession() //返回型別為Map<String,Object>方式二:
ServletActionContext.getRequest().getSession() //返回型別為HttpSession;方式三:
SessionAware讓Action實現SessionAware介面,實現void setSession(Map<String,Object> session)方法,Struts2會在例項化Action後呼叫該方法,通過方法引數將Session物件注入進來。定義成員變數,接收注入進來的Session物件;
package cn.dynamic.login.action;
import java.util.Map;
import org.apache.struts2.interceptor.SessionAware;
/**
* Action基類,用於封裝Action通過的方法
* @author fxq
*
*/
public class BaseAction implements SessionAware{
protected Map<String, Object> session;
/**
* 採用介面注入的方式統一獲取Session;
*/
public void setSession(Map<String, Object> session)
{
session = session;
}
}
package cn.dynamic.login.action;
import cn.dynamic.login.dao.LoginDao;
import cn.dynamic.login.entity.Admin;
import cn.dynamic.login.factory.DAOFactory;
public class LoginAction extends BaseAction {
public String execute() {
//從session中取出生成的驗證碼;
String imageCode = (String)session.get("imageCode");
session.put("admin", admin);//向Session中存值;
}
}
針對三種方式,從返回型別和獲取方式進行對比
返回型別對比
1和3方式
獲取的Session是Map<String,Object>型別,Struts2採用該型別的目的是簡化Session物件,而Session的儲存結構和Map是一致的。
2方式
獲取的Session是HttpSession,為了保持相容性,Struts2提供了獲取該型別的方式
獲取方式對比
1和2方式
是主動獲取Session
3方式
採用注入的方式自動注入Session,該方式是被動的。
推薦使用方式3,採用注入思想,更加靈活,面向介面程式設計。
相關文章
- STRUTS2獲得session和requestSession
- SSH獲取SESSION時報NullPointExceptionSessionNullException
- 關於filter獲取session的問題!!!FilterSession
- jquery獲取struts2標籤 裡的key valuejQuery
- 從session中獲取資料Session
- Struts2中獲取請求引數
- struts2中session使用Session
- 獲取本session的sid和serial#Session
- 求救!Javabean中能否獲取某個session的值??JavaBeanSession
- 在ActionForm中如何獲取session中的資料?ORMSession
- Grails通過sessionId獲取session物件AISession物件
- SpringMVC - controller中獲取sessionSpringMVCControllerSession
- Strut2------獲取介面返回的session,application,parameterSessionAPP
- 獲取指定pid的session的pga/uga使用情況Session
- Struts2中使用Session的兩種方法Session
- 當laravel獲取不到session的三種解決辦法LaravelSession
- WebApi和Mvc的Session一直獲取不到問題WebAPIMVCSession
- android中HttpClient獲取Session然後使用 WebView共享session的解決辦法(轉)AndroidHTTPclientSessionWebView
- Struts2筆記10 向值棧放入或獲取資料筆記
- Struts2筆記06 封裝獲取表單資料方式筆記封裝
- oracle獲取當前會話(程式)session id(sid)Oracle會話Session
- 如何透過Spring Data/EntityManager/Session直接獲取DTO資料?SpringSession
- 網站安全漏洞之SESSION防跨站攻擊獲取網站Session
- 配置session——快取Session快取
- Struts2框架自學之路——Action獲取表單資料的方式以及表單資料的封裝框架封裝
- js獲取元素的方法(獲取html元素的方法)JSHTML
- 前後端頁面分離導致session無法正常獲取的問題後端Session
- 【hibernate】Session快取Session快取
- Struts2筆記08 獲取值棧物件筆記物件
- 使用gin,gin-contrib/sessions不同request path獲取不到sessionSession
- Java classpath的獲取Java
- Hibernate中的Session快取問題Session快取
- 頁面獲得不了session值???Session
- php一句話獲取獲取檔案目錄的方法PHP
- 如何獲取安全獲取蘋果udid,imei蘋果
- Hibernate的一級快取Session和二級快取SessionFactory快取Session
- 在Struts2中ValueStack、ActionContext、ServletContext、request、session關係分析ContextServletSession
- 獲取影像的屬性