在servlet中可以通过servlet API来获取Session,在Struts中如何获取Session呢?
解析:将用户名放入session 两种方案
1. 与Servlet API解耦的访问方式
--->01.使用ActionContext类获取ServletAPI对象对应的Map对象
--->02.Struts2向Action注入ServletAPI对象对应的Map对象
2. 与Servlet API耦合的访问方式
解耦方式:
方案一: 对Servlet API进行封装 ,借助ActionContext
提供了三个Map对象访问request、session、application作用域
通过ActionContext类获取这三个Map对象
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);