在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方式
这种方式主要是利用了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和request这一核心知识点时,我们首先需要理解STRUTS2框架的运行机制以及session与request在Web开发中的基础概念。 ### STRUTS2框架简介 STRUTS2是Apache软件基金会下的一个...
本文将深入探讨Struts2中如何获取request和session,以及这两种对象的作用和应用场景。 ### Struts2框架简介 Struts2是基于Java Servlet API的一个开源MVC(Model-View-Controller)框架,它提供了强大的功能来...
Struts2和Hibernate是两种非常重要的Java Web开发框架,它们分别负责表现层和持久层的管理。在本项目中,"用Struts2加Hibernate对学员信息进行增删改查操作",主要涉及了以下几个核心知识点: 1. **Struts2框架**:...
本文将重点讨论Struts2中的API耦合和动态方法调用,这两种特性对于理解框架的工作原理和提高代码的灵活性至关重要。 首先,我们来看看Struts2 API耦合的几种方式: 1. **ActionContext类**:ActionContext是Struts...
4. **Struts2配置**:Struts2支持XML和注解两种配置方式。在`struts.xml`或`struts.properties`中,可以定义Action、拦截器栈、结果类型映射等。注解配置则可以直接在Action类上进行,简化了配置文件。 5. **OGNL...
- "STRUTS2获得session和request - lyyb2001 - BlogJava.mht":这个文件可能是lyyb2001在BlogJava网站上分享的关于如何在Struts2中获取和操作session及request对象的文章,这对于理解和解决会话标识问题很有帮助。...
EL提供“.”和“[ ]”两种运算符来存取数据。当要存取的属性名称中包含一些特殊字符,如.或?等非字母或数字的符号,就一定要使用“[ ]”。例如:${user.My-Name}应当改为${user["My-Name"]}。 如果要动态取值时,就...
Struts2提供了一系列方便的方式来访问这些对象,包括但不限于非IoC和IoC两种不同的模式,以及是否与Servlet容器相关联。 #### 二、Struts2 Action获取属性范围的四种方式 根据给定文件的内容,我们将逐一介绍...
Struts2引入了"pull-MVC"架构,这意味着开发者可以直接从Action中获取需要显示的数据,无需像Struts1那样将数据存放在Page、Request或Session中。这种设计减少了不必要的对象创建,简化了数据处理流程。在实际应用中...
通过`pageContext`,我们可以方便地获取到如`request`、`session`、`application`等内置对象,这对于实现自定义标签非常有帮助。 #### 2.2 获取`HttpSession`的具体方法 在自定义标签的Java类中,可以通过以下方式...
ActionContext是Struts2框架中一个关键的组件,它提供了当前请求上下文的信息,而OGNL(Object-Graph Navigation Language)则是Struts2中的表达式语言,用于在模型和视图之间进行数据传递。下面将详细探讨这两个...
它的核心是基于Action和Result的设计模式,提供了一种组织业务逻辑和表示层的方式。在这个场景中,我们有两个关键组件的源代码:`struts-core` 和 `xwork-core`。 1. **Struts2 Core**: - `struts-core` 是Struts...
本文将深入探讨Struts2中两种不同的传值方式,并结合实例解析如何在JSP页面中使用Struts2标签进行数据访问。 首先,传值问题在Struts2中主要涉及到Action类和JSP页面之间的交互。在Action类中,有两种方式可以将值...
2. **配置方式**:Struts2有两种主要的配置方式:XML配置和注解配置。XML配置文件通常为struts.xml,用于定义Action、Result和Interceptor等;注解配置则可以直接在Action类上标注,简化了配置过程。 3. **模型-...
Struts和Struts2是两种广泛使用的Java Web框架,它们都是Apache软件基金会的开源项目,旨在简化MVC(模型-视图-控制器)应用程序的开发。Struts1是早期的版本,而Struts2是在其基础上进行改进和扩展的升级版。 **...
Struts2和XWork2是两个非常重要的Java Web框架,它们在开发企业级应用程序时起着核心作用。Struts2是基于MVC(Model-View-Controller)设计模式的开源框架,而XWork2则是其底层工作框架,负责处理Action和业务逻辑。...