在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在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方式
非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的Action可以通过`ActionContext`来间接获取`request`、`response`和`session`。`ActionContext`是Struts2的一个核心类,它提供了当前执行上下文的信息,包括了request、response和session等。通过`...
在Struts2中,虽然request、response和session被隐藏起来,但是提供了多种便捷的方式来获取这些对象,使得开发者可以在自定义的方法中灵活地使用它们。通过使用Struts2提供的接口、注解或ActionContext,开发者能够...
在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...
在 Struts2 中,处理用户请求时经常需要使用到 Servlet 的内置对象,比如 Request、Session 和 Application,这些对象可以帮助开发者存储和获取数据。然而,在实际应用中,为了避免代码与 Servlet API 过度耦合,...
以下是对"struts2获取response的方法"的详细说明。 1. **ActionSupport类的实现** Struts2中的Action类通常会继承自`org.apache.struts2.interceptor.StrutsPrepareAndExecuteInterceptor`或`...
在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object> ...
通过实现特定的接口或使用`ActionContext`和`ServletActionContext`类,开发者可以轻松地获取`request`、`session`和`response`对象。这些工具极大地简化了Web应用程序的开发过程,提高了代码的可维护性和可扩展性。
通过以上分析可以看出,在Struts2项目中配置过滤器是一种非常实用的方法,可以有效地实现对用户请求的预处理工作。需要注意的是,在实际应用中还应考虑更多细节问题,比如如何处理不同环境下的配置差异、如何更灵活...
3. **Action上下文(Action Context)**:`org.apache.struts2.dispatcher`包下的`ActionContext`类存储了请求处理过程中的上下文信息,如值栈(Value Stack)、session、request、response等。 4. **值栈(Value ...
它有内置对象如request、response、session、application等,方便处理HTTP请求和响应。 - **EL(Expression Language)**:EL简化了在JSP中获取和设置属性值的方式,无需编写Java脚本,使得JSP更加简洁。 - **JSTL...
本文总结了Struts2的常用方法和经验,涵盖了配置问题、EL表达式、Struts2的架构和Namespace等方面的知识点。 一、配置问题 Struts2的最新版本为GA 2.2.1,需要以下几个类库: 1.commons-fileupload-1.2.1.jar 2....
Struts2是一个强大的Java web开发框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性、可扩展性极高的Web应用程序的工具和方法。Struts2 API是这个框架的核心组成部分,它包含了各种...
Struts2是一个强大的Java Web应用程序框架,它提供了一种组织和构建MVC(Model-View-Controller)架构的方式。在Struts2框架中,我们有时需要直接与Servlet API交互,例如处理HTTP请求、响应,或者使用Session、...
3. **插件体系**:Struts2支持丰富的插件,如Struts2-convention插件可以实现自动映射Action和方法,Struts2-dojo-plugin则提供了与Dojo库的集成,便于创建富客户端应用。 4. **OGNL(Object-Graph Navigation ...
#### Struts2中获取request、response和session对象 在Struts2中,可以通过注入的方式直接在Action中使用`HttpServletRequest`, `HttpServletResponse`和`HttpSession`对象,无需手动从Servlet API中获取。这简化了...
2. Struts2的ActionContext保存了当前请求的上下文信息,包括参数、session、request和response等。 3. 拦截器链开始执行,其中的ParameterInterceptor负责将请求参数绑定到Action实例的属性上,使用OGNL(Object-...
7. **ActionContext**:封装了当前请求的所有上下文信息,包括session、request、response、parameters等,可以用来在Action之间共享数据。 8. **Struts2的注解支持**:Struts2提供了丰富的注解,如@Action、@...
2. **ActionContext**: 包含了当前请求的所有上下文信息,如session、request、response、value stack等。 3. **ActionInvocation**: 表示Action执行的实例,包含了调用链以及拦截器链。 4. **...
请注意,由于Struts2的生命周期和依赖注入特性,可能需要在测试中对某些对象(如Session、Request、Response)进行模拟或配置。此外,如果你的应用使用了Spring等依赖注入框架,可能还需要额外的配置来使Struts2 ...
8. **ActionContext**:ActionContext封装了当前请求的上下文信息,包括参数、session、request、response等,提供了一种在Action与视图之间共享数据的途径。 9. ** strut2的注解**:Struts2支持注解方式的配置,...