`
yinbinhome
  • 浏览: 124037 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

WebWork-ActionContext(Action上下文)

阅读更多
Web应用程序开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息, 甚至需要直接对JavaServlet Http的请求(HttpServletRequest)、响应(HttpServletResponse)操作。
我们需要在Action中取得request请求参数“username”的值:
ActionContext context = ActionContext.getContext();
Map params = context.getParameters();
String username = (String) params.get(“username”);
ActionContextcom.opensymphony.xwork.ActionContext)是Action执行时的上下文,上下文可以看作是一个容器(其实我们这里的容器就是一个Map而已),它存放放的是Action在执行时需要用到的对象
一般情况,我们的ActionContext都是通过:ActionContext context = (ActionContext) actionContext.get();来获取的。我们再来看看这里的actionContext对象的创建:static ThreadLocal actionContext = new ActionContextThreadLocal();ActionContextThreadLocal是实现ThreadLocal的一个内部类。ThreadLocal可以命名为“线程局部变量”,它为每一个使用该变量的线程都提供一个变量值的副本,使每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。这样,我们ActionContext里的属性只会在对应的当前请求线程中可见,从而保证它是线程安全的。
下面我们看看怎么通过ActionContext取得我们的HttpSession
Map session = ActionContext.getContext().getSession()
ServletActionContextcom.opensymphony.webwork. ServletActionContext),这个类直接继承了我们上面介绍的ActionContext,它提供了直接与JavaServlet相关对象访问的功能,它可以取得的对象有:
1、javax.servlet.http.HttpServletRequestHTTPservlet请求对象
2、javax.servlet.http.HttpServletResponse;HTTPservlet相应对象
3、javax.servlet.ServletContextServlet 上下文信息
4、javax.servlet.ServletConfigServlet配置对象
5、javax.servlet.jsp.PageContextHttp页面上下文
下面我们看看几个简单的例子,让我们了解如何从ServletActionContext里取得JavaServlet的相关对象:
1、取得HttpServletRequest对象:
HttpServletRequest request = ServletActionContext. getRequest();
2、取得HttpSession对象:
HttpSession session = ServletActionContext. getRequest().getSession();
ServletActionContextActionContext有着一些重复的功能,在我们的Action中,该如何去抉择呢?我们遵循的原则是:如果ActionContext能够实现我们的功能,那最好就不要使用ServletActionContext,让我们的Action尽量不要直接去访问JavaServlet的相关对象。在使用ActionContext时有一点要注意:不要在Action的构造函数里使用ActionContext.getContext(),因为这个时候ActionContext里的一些值也许没有设置,这时通过ActionContext取得的值也许是null
分享到:
评论

相关推荐

    WebWork教程-0.90版

    在Action中,可以通过ActionContext.getContext()获取当前的ActionContext实例,从而访问和修改上下文数据。 3. **ServletDispatcher原理**:ServletDispatcher是WebWork的核心组件之一,负责接收HTTP请求并将请求...

    WebWork教程-0.90版.pdf

    - **ActionContext**:Action上下文是WebWork中的一个重要概念,包含了Action运行时所需要的信息,如请求参数、会话信息等。 - **ServletActionContext**:在Web环境中,ServletActionContext实现了ActionContext...

    webwork 2.1.7.jar

    10. **ActionContext**:ActionContext是WebWork中的一个重要组件,它保存了请求上下文中的所有信息,包括session、request和application范围的对象,以及OGNL表达式上下文。 11. **Ajax Support**:WebWork 2.1.7...

    webwork教程

    - 通过ActionContext访问当前的请求上下文信息。 - **ActionContext**: - 用于存储与当前请求相关的数据和对象。 - 提供了一种方式来获取当前的请求信息、session信息等。 - ServletActionContext是...

    WebWork教程开发资料

    **ActionContext(Action上下文)** ActionContext是WebWork中传递请求参数、session状态和其他上下文信息的关键对象。它封装了请求和响应对象,为Action提供了一种访问当前请求环境的统一方式。 **...

    webwork中文 webwork中文参考 webwork中文资料 webwork学习资料

    ActionContext是Action执行的上下文,包含了一系列关键的对象,如Request、Session、Application等,用于存储和检索数据。ServletActionContext则专门用于Servlet环境下的ActionContext操作。 #### Interceptor框架...

    webwork配置详解

    **ActionContext(Action上下文)** ActionContext 是WebWork中用于传递请求和响应间数据的容器,它包含了当前请求的所有上下文信息。ActionContext可以存储临时数据,这些数据在Action执行期间可被多个拦截器和...

    webwork学习资料

    6. **ActionContext (Action上下文)** ActionContext是WebWork中的一个关键组件,它提供了访问当前请求的上下文信息,如请求参数、session和application范围的对象。ActionContext使得Action可以获取和设置这些信息...

    webwork文档

    - **ActionContext**:提供了Action的执行上下文,包括ServletActionContext和ServletDispatcher,其中ServletDispatcher负责将HTTP请求转化为Action调用。 - **ResultType**:定义了Action执行完毕后的结果展现形式...

    webwork的使用教程

    ActionContext是WebWork中用于传递请求上下文信息的关键对象。它封装了当前请求的所有相关信息,如session、request、response对象以及值栈等。ActionContext允许你在Action之间共享数据,也可以通过它访问Servlet...

    webwork教程(经典)

    **四、ActionContext(Action上下文)** **ActionContext介绍**: ActionContext是WebWork中存储请求上下文信息的容器,它包含了请求参数、Session数据、Application级变量等。ActionContext使得在Action和视图之间...

    webwork教程很好的学习教程

    **ActionContext**是WebWork框架中用于存储当前Action执行上下文信息的对象,主要包括请求参数、会话信息等。 - **ActionContext介绍**:ActionContext提供了对当前执行环境的访问,如`getRequest()`、`getSession...

    webwork学习

    ActionContext (Action上下文)** - **介绍**:ActionContext是Action执行过程中所需的各种信息的容器,如Request、Response、Session等。 - **ServletActionContext**:特定于Servlet容器的ActionContext实现。 - *...

    WebWork简明教程

    - **值堆栈**:OGNL通过值堆栈(OgnlValueStack)来管理数据上下文,使得Action中的数据可以在整个WebWork生命周期内共享。 #### 拦截器框架 - **原理**:通过定义一系列拦截器来增强Action的功能,如日志记录、...

    webwork入门(添加注释)

    ActionContext是WebWork中的一个重要概念,它保存了当前请求相关的上下文信息,如Action的属性、Session数据、Request参数等。ActionContext允许动作访问和操作这些数据,同时,ServletActionContext是ActionContext...

    webwork

    - **ActionContext**:Action运行时的上下文环境,包含请求、会话和应用范围的信息。 - **ServletActionContext**:提供访问当前请求、响应和会话的方法。 #### 五、ServletDispatcher原理 **ServletDispatcher** ...

    webwork核心技术文档

    3. **ActionContext(Action 上下文)**:ActionContext是WebWork中保存请求上下文信息的对象,它包含当前请求的所有状态信息,如请求参数、session信息、全局变量等。开发者可以通过ActionContext访问这些信息,...

Global site tag (gtag.js) - Google Analytics