`
it2010
  • 浏览: 8572 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2中使用request、response、session等servlet对象

阅读更多

Struts1.*中,要想访问requestresponse以及sessionServlet对象是很方便的,因为它们一直是作为形参在各个方法之间进行传递的,而在Struts2中我们就很难看到它们的芳踪了,因为我们获得表单中的值都是通过预先设置好了的get方法来得到的,那么如果有些参数我们必须通过request.getParametre或者session.getAttribute来得到,那么应该怎么做呢?按照Max的教程上的说法,可以分为两种:IoC方式和非IoC方式,如何理解这两种方式的区别呢?IoCSpring里面的特征之一,字面意思是反转控制,说白了就是依赖注入,比方说类A依赖类B,那么就主动的给A注入一个类B的对象,下面看一下这两种方法的具体实现。

1.非Ioc方式

这种方式主要是利用了com.opensymphony.xwork2.ActionContext类以及org.apache.struts2.ServletActionContext类,具体的方法如下所示。

获得request对象:

AHttpServletRequest request = ServletActionContext.getRequest ();

BActionContext ct= ActionContext.getContext()

   HttpServletRequest request=

(HttpServletRequest)ct.get(ServletActionContext.HTTP_REQUEST);

获得session对象:

Struts2中底层的session都被封装成了Map类型,我们称之为SessionMap,而平常我们所说的session则是指HttpSession对象,具体的获得方法如下所示。

AMap session=ActionContext.getSession();

BMap session=(Map)ActionContext.getContext().get(ActionContext.SESSION);

得到这个SessionMap之后我们就可以对session进行读写了,如果我们想得到原始的HttpSession可以首先得到HttpServletRequest对象,然后通过request.getSession()来取得原始的HttpSession对象。一般情况下SessionMap已经可以完成所有的工作,我们不必再去碰底层的session了。

2IoC方式

这种方式相对来说变化就比较少了,具体流程如下所示。

获得request对象:

第一步:让action实现ServletRequestAware接口

第二步:在action中声明一个HttpServletRequest类型的实例变量

第三步:在action中实现ServletRequestAware接口的setServletRequest方法,实现方式很简单,如下所示。

         private HttpServletRequest request;

publicvoid setServletRequest(HttpServletRequest request) {

            this.request = request;

    }

获得Session对象(注意,此时的sessionSessionMap类型)

第一步:让actionSessionAware接口

第二步:在action中声明一个HttpServletRequest类型的实例变量

第三步:在action中实现SessionAware接口的setSession法,实现方式很简单,如下所示。

         private Map session;

publicvoid setSession(Map session) {

            this. session = session;

分享到:
评论

相关推荐

    Struts2的Action中获得request response session几种方法

    Struts2支持依赖注入(Dependency Injection, DI),可以通过配置让框架自动将request、response、session等对象注入到Action中。这通常在Action的定义中通过注解或配置文件指定。 #### 示例代码: ```java import...

    struts2使用request、response

    本文将详细介绍如何在Struts2中使用request和response。 #### 二、Struts2中request与response的获取方式 在Struts2中,可以通过以下几种方式来获取request和response对象: 1. **使用Struts2提供的拦截器:** - ...

    struts2访问request,session,application作用域

    在 Struts2 中,处理用户请求时经常需要使用到 Servlet 的内置对象,比如 Request、Session 和 Application,这些对象可以帮助开发者存储和获取数据。然而,在实际应用中,为了避免代码与 Servlet API 过度耦合,...

    Struts2通过使用ActionContext类获取request和response对象

    在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object> ...

    Struts2访问ServletAPI

    本文将深入探讨如何在Struts2中访问Servlet API。 首先,理解Struts2的执行流程至关重要。当一个请求到达服务器时,Struts2的过滤器(通常名为`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`)会捕获这个...

    struts2获取response的方法

    在Struts2中,获取Response对象是常见的操作,用于设置HTTP响应头、重定向、或者向客户端发送数据。以下是对"struts2获取response的方法"的详细说明。 1. **ActionSupport类的实现** Struts2中的Action类通常会...

    Struts2 part 3:在Action中使用ServletAPI

    在"Struts2 part 3:在Action中使用ServletAPI"这一主题中,我们将深入探讨如何在Struts2的动作类(Action)中集成和利用Servlet API来增强应用的功能。 Servlet API是Java Servlet规范的一部分,它提供了一系列...

    struts2配置过滤器

    本文将通过一个具体的示例来详细介绍如何在Struts2项目中配置过滤器。 #### 二、过滤器配置实例分析 ##### 2.1 web.xml配置解析 在给定的web.xml配置文件中,可以看到对`SessionInvalidate`过滤器进行了定义和...

    java web 实战宝典_JSP+Servlet+Struts_2+Hibernate+Spring+Ajax

    JSP的主要特点包括能够与JavaBean技术结合,实现业务逻辑与表示层的分离,它还提供了丰富的内置对象,比如request、response、session等,这些都是JSP页面可以直接使用的对象。 Servlet是Java Servlet的简称,是一...

    struts2学习心得

    1. 在软件设计方面Struts2没有像Struts1那样和servlet API和Struts API那样紧密的耦合。Struts2可以不依赖它们。Struts2属于无侵入式设计。而Struts1属于侵入式设计。 例如:public class HelloWordAction extends ...

    struts2-core-2.0.11源码

    3. **Action上下文(Action Context)**:`org.apache.struts2.dispatcher`包下的`ActionContext`类存储了请求处理过程中的上下文信息,如值栈(Value Stack)、session、request、response等。 4. **值栈(Value ...

    Struts2访问Servlet的三种方式

    然而,在实现业务逻辑时,经常需要访问 Servlet 中的对象,如 request、session 和 application 等。因此,Struts2 提供了三种方式来访问 Servlet API,这三种方式分别是实现特定接口、通过 ServletActionContext 类...

    struts1.x 和 struts2.x向Action里填充jsp参数原理

    2. Struts2的ActionContext保存了当前请求的上下文信息,包括参数、session、request和response等。 3. 拦截器链开始执行,其中的ParameterInterceptor负责将请求参数绑定到Action实例的属性上,使用OGNL(Object-...

    Java Web开发技术大全--JSP+Servlet+Struts 2+Hibernate+Spring+AJAX.(李宁)

    JSP通过内置对象如Request、Response、Session、Application等提供与用户的交互,同时支持自定义标签库,使得开发更加灵活和模块化。 **Servlet** 是Java EE的一部分,它是一个服务器端的Java类,用于处理客户端...

    完整的Struts2源码

    - ActionContext是Struts2中存储请求上下文信息的对象,包括Value Stack、Parameters、Session、Request、Response等。 通过研究Struts2的源代码,我们可以更深入地理解这些概念如何协同工作,有助于我们在实际...

    struts2中action如何获取jsp页面参数1.pdf

    以下是关于如何在Struts2中Action获取JSP页面参数以及相关上下文对象的详细说明: 1. **ActionContext获取请求参数** - `ActionContext`是Struts2框架中的一个重要组件,它是一个存储执行Action时所需对象的容器,...

    Struts2的总结和Strut2集成Spring

    OGNL(Object-Graph Navigation Language)是Struts2中使用的表达式语言,用于访问Java对象的属性和调用方法,增强了视图层的表达能力和灵活性。 #### 表达式语言主要好处 OGNL的主要好处包括简洁的语法、强大的...

    Struts2.0中文教程

    2. **ActionContext**:存储Action执行时的上下文信息,包括Action实例、值栈、session、request、response等。 3. **ValueStack**:用于管理模型对象,提供了一种从视图到模型的动态绑定机制。 4. **...

    struts2的学习笔记+测试源代码

    本学习笔记结合测试源代码深入探讨了如何在Struts2框架下获取并使用`request`、`session`、`ServletContext`以及`response`对象,这些都是在Web开发中不可或缺的基础组件。 ### request对象 `HttpServletRequest`...

    struts2的jar包.zip

    8. **ActionContext**:ActionContext封装了当前请求的上下文信息,包括参数、session、request、response等,提供了一种在Action与视图之间共享数据的途径。 9. ** strut2的注解**:Struts2支持注解方式的配置,...

Global site tag (gtag.js) - Google Analytics