应用系统中,用户登录后,通常需要把相关登录信息添加为Session的状态信息。
为了访问request、response以及session等Servlet对象,在struts2中可以有两类方法,分别是IoC方式和非IoC方式:
1.非IoC方式:
Struts 2提供了ActionContext类(com.opensymphony.xwork2.ActionContext)和ServletActionContext(org.apache.struts2.ServletActionContext)。
a)获得session:
ActionContext类提供了一个getSession方法,但该方法返回的类型不是HttpSession,而是Map。这与Struts2的设计哲学有关,Struts2为了简化Action类的测试,将Action类和Servlet API完全分离,因此getSession方法的返回值类型是Map,而不是HttpSession。
虽然ActionContext的getSession方法返回的不是HttpSession对象,但struts2的系列拦截器会负责该Session和HttpSession之间的转换。
修改Action类的execute方法,在execute中通过ActionContext访问Web应用的Session。
ActionContext.getContext().getSession().put("user" , getUsername());
b)获得request对象:
HttpServletRequest request = ServletActionContext.getRequest ();
ActionContext ct= ActionContext.getContext()
HttpServletRequest request=(HttpServletRequest)ct.get(ServletActionContext.HTTP_REQUEST);
2.IoC方式:
a)获得request对象:
第一步:让action实现ServletRequestAware接口
第二步:在action中声明一个HttpServletRequest类型的实例变量
第三步:在action中实现ServletRequestAware接口的setServletRequest方法,实现方式很简单,如下所示。
private HttpServletRequest request;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
b)获得Session对象(注意,此时的session是SessionMap类型):
第一步:让action实现SessionAware接口
第二步:在action中声明一个HttpServletRequest类型的实例变量
第三步:在action中实现SessionAware接口的setSession方法,实现方式很简单,如下所示。
private Map session;
publicvoid setSession(Map session) {
this. session = session;
}
一般情况下SessionMap已经可以完成所有的工作,我们不必再去碰底层的session了
分享到:
相关推荐
项目申报系统是一个基于Struts2、Spring、Hibernate和MySQL5技术的综合信息平台,旨在简化项目申报流程,提高管理效率。该系统适用于各类企事业单位、政府部门和其他组织,支持多用户同时在线操作,实现信息的集中...
* 订单处理:餐厅可以查看、接受或拒绝顾客的订单请求,并实时跟踪订单状态。 * 顾客反馈:餐厅可以查看顾客的评价和反馈,以便改进服务质量。 3. **管理员模块:** * 餐厅审核:管理员可以审核新注册的餐厅,...
后台技术:Struts2 + Spring + Hibernate 本系统主要针对物流工作人员,管理员等用户的需求进行设计,最终实现企业物流制度等的网上完成。该系统实现了工作人员登记订单等信息。系统分为4个模块,分别是登录模块、...
后台技术:Struts2 + Spring + Hibernate 本系统主要针对物流工作人员,管理员等用户的需求进行设计,最终实现企业物流制度等的网上完成。该系统实现了工作人员登记订单等信息。系统分为4个模块,分别是登录模块、...
## 后台技术:Struts2 + Spring + Hibernate 本系统主要针对物流工作人员,管理员等用户的需求进行设计,最终实现企业物流制度等的网上完成。该系统实现了工作人员登记订单等信息。系统分为4个模块,分别是登录模块...
## 后台技术:Struts2 + Spring + Hibernate 本系统主要针对物流工作人员,管理员等用户的需求进行设计,最终实现企业物流制度等的网上完成。该系统实现了工作人员登记订单等信息。系统分为4个模块,分别是登录模块...
实验室预约管理系统(SSH+JSP+MySQL5.x) 是为学术机构和教育机构设计的一款预约平台,它的核心功能包括实验室的预约、管理、使用状态跟踪以及资源优化分配。该系统致力于简化实验室的预约流程,提高实验室的使用效率...
后台技术方面,我们采用Struts2负责请求转发与响应,Spring进行业务逻辑处理,Hibernate实现数据持久化。 本系统专为物流工作人员和管理员量身打造,旨在实现企业物流制度的在线化操作。系统包含四个核心模块:登录...
后台技术:Struts2 + Spring + Hibernate 本系统主要针对物流工作人员,管理员等用户的需求进行设计,最终实现企业物流制度等的网上完成。该系统实现了工作人员登记订单等信息。系统分为4个模块,分别是登录模块、...
通过这些模块,用户可以方便地跟踪货物的状态、管理库存、生成报表和分析数据。此外,系统的界面设计简洁明了,操作流程直观易懂,大大提高了用户的工作效率。同时,由于采用了模块化的设计,系统具有良好的扩展性...
104 第8章 Struts2框架 105 8.1 Web应用的发展 105 8.2 Struts2的起源和体系结构 106 8.3 Struts2核心部分详解 108 8.3.1 核心控制器FilterDispatcher 108 8.3.2 业务逻辑控制器Action 111 8.3.3 业务逻辑组件 116 ...
开发语言:java +jsp +struts2+hibernate 开发环境:MyEclipse 数据库: MySQL 系统架构:B/S架构 服务器:Apache Tomcat 二、系统包含模块 1、档案管理系统 2、联系人管理系统 3、费用管理系统 4、库存管理系统 5、...
开发语言:java +jsp +struts2+hibernate 开发环境:MyEclipse 数据库: MySQL 系统架构:B/S架构 服务器:Apache Tomcat 1、档案管理系统 2、联系人管理系统 3、费用管理系统 4、库存管理系统 5、客户管理系统 1...
72.5. Struts 2框架的大致处理流程如下: 68 72.6. Struts体系结构中的组件 69 72.7. struts如何实现国际化 70 72.8. struts2.0的常用标签 71 72.9. action是单实例还是多实例,为什么? 73 72.10. Struts的validate...
18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他用户。...
18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 107 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他...
18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 107 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他...
18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 107 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他...
18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 107 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他...