在servlet中能夠經過servlet API來獲取Session,在Struts中如何獲取Session呢?session
解析:將用戶名放入session 兩種方案app
1. 與Servlet API解耦的訪問方式spa
--->01.使用ActionContext類獲取ServletAPI對象對應的Map對象3d
--->02.Struts2向Action注入ServletAPI對象對應的Map對象對象
2. 與Servlet API耦合的訪問方式blog
解耦方式: 接口
方案一: 對Servlet API進行封裝 ,藉助ActionContext作用域
提供了三個Map對象訪問request、session、application做用域get
經過ActionContext類獲取這三個Map對象servlet
Object get("request")
Map getSession()
Map getApplication()
案例:登錄成功後,記錄用戶名到Session中,登錄失敗,跳會登錄頁面
步驟一:書寫Action
方案二:向Action中注入ServletAPI對象對應的Map對象
步驟一:書寫Action
耦合方式:
方式一:經過ActionContext的子類ServletActionContext實現
方式二:向Action實例注入Servlet API對象
2.在Struts中如何保存登錄用戶名 ,用Session機制
解析:在Servlet中如何獲取到Session對象?
----->request.getSession()
在Struts中如何獲取session對象
--->ActionContext類
在Struts中經過注入,核心接口 SessionAware: setSession(Map<String,Object> map);