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

使用Struts2拦截器execAndWait后request,session为null的解决方法

阅读更多

1.execAndWait拦截器的配置方法

    在struts.xml中按照以下格式写

    <action name="..." class="...">
      <interceptor-ref name="defaultStack">

      </interceptor-ref>
      <interceptor-ref name="execAndWait">
      <param name="excludeMethods">input</param>
      <!-- 等待时间,执行时间没有超过此值,将不显示等待画面 (毫秒) -->
      <param name="delay">1000</param>
      <!-- 间隔检查时间,检查后台进程有没有执行完毕,如果完成了它就立刻返回,不用等到等待,用户不会看到等待画面  -->
      <param name="delaySleepInterval">50</param>
          <resultname="wait">wait.jsp</result>
      </interceptor-ref>
   </action>


2.request,session为null的解决方法

    因为这个action将会以单独的线程执行,所以你不能用ActionContext,因为它是ThreadLocal.这也就是说如果你要访问 session数据,你必须实现 SessionAware接口而不是调用ActionContext.getSesion() 。同理,要去到request要实现RequestAware接口。

public class SomeAction extends ActionSupport implements SessionAware, RequestAware{
    protected Map<String, Object> session;
     protected Map<String, Object> request;
      @Override
     public void setSession(Map<String, Object> session) {
         this.session = session;
     }
     
     @Override
     public void setRequest(Map<String, Object> request) {
         this.request = request;
     }

}

 

 

 

分享到:
评论

相关推荐

    struts2 拦截器实现登录控制

    总的来说,Struts2的拦截器机制为开发者提供了强大的功能,使得应用程序能够更好地管理复杂的业务流程和控制逻辑,同时保持代码的清晰和模块化。通过理解并熟练运用拦截器,我们可以构建更健壮、更安全的Web应用。

    Struts2拦截器实例.docx

    ### Struts2拦截器实例——登录校验 #### 概述 在Web应用开发中,登录验证是一项重要的功能。为了确保只有已登录的用户才能访问特定的资源或页面,通常会采用拦截器来实现这一需求。本文档将详细介绍如何在Struts2...

    struts2拦截器权限设置

    ### Struts2拦截器权限设置 #### 背景与目的 在开发Web应用程序时,权限控制是一项重要的功能。它确保只有经过验证的用户才能访问特定的资源或执行某些操作。Struts2作为一款流行的Java Web框架,提供了丰富的功能...

    自定义拦截器实现防止重复提交

    自定义拦截器需要继承`org.apache.struts2.interceptor.AbstractInterceptor`类,并覆盖`intercept()`方法。下面是一个简单的自定义拦截器示例: ```java public class TokenAtionInterceptor extends ...

    java中的Struts2拦截器详解

    Java 中的 Struts2 拦截器详解 Struts2 拦截器是一种强大且灵活的机制,它可以在 action 之前或之后执行某些操作,实现一些通用的功能,如权限认证、日志记录和登陆判断等。 1. 什么是拦截器? 拦截器相当于过滤...

    轻松入门之Struts2

    本文档旨在为初学者提供Struts2框架的基础知识概览,涵盖了Struts2的基本概念、配置方式、表单验证、国际化支持、拦截器机制、IOC模式、标签库使用、OGNL表达式语言、上传下载功能以及与其他流行框架的集成等内容。...

    struts2中ongl表达式的使用和具体实例应用

    - **设置上下文**:在OGNL执行之前,需要先设置好上下文环境,通常是在Struts2的拦截器中进行设置。 - **读取上下文**:在OGNL表达式中可以通过特定的语法来读取上下文中的数据。 #### 五、OGNL的高级特性 OGNL...

    struts2国际化测试

    这通常通过一个Action方法来完成,该方法接收一个`String`类型的`locale`参数,然后将其设置到`session`或`request`上下文中。例如: ```java public class LocaleAction extends ActionSupport { private String ...

    struts过滤器.doc

    在Struts2中,过滤器与拦截器(Interceptor)一起工作,提供了强大的请求处理和业务逻辑控制。 一、防止浏览器缓存页面的过滤器 `ForceNoCacheFilter`是一个示例,它的目的是确保浏览器不缓存任何页面内容。这在...

    J2EE企业级项目开发-1期 02 Struts2+Web常使用功能的经验.doc

    Struts2的核心是基于拦截器的架构,这种设计使得业务逻辑控制器与Servlet API完全解耦,增强了框架的灵活性和可扩展性。 在Struts2中,`&lt;s:if&gt;`标签是用于条件判断的,它允许开发者在页面中根据某些条件展示不同的...

    java+struts2防盗链(filter不可过滤action).docx

    Java+Struts2 防盗链(Filter 不可过滤 Action) 防盗链是指防止在没有通过合理的登录界面,直接进入到系统中的机制...使用 Filter 和 Struts2 的拦截器,我们可以实现防盗链机制,避免用户直接访问系统中的某些页面。

    java自定义拦截器用法实例

    在Java Web应用中,特别是使用Struts2框架时,拦截器扮演着至关重要的角色。下面我们将深入探讨如何实现并使用Java自定义拦截器。 首先,我们来看`LoginInterceptor`类,它是基于Struts2框架的自定义拦截器。`...

    JAVA面试题解惑系列

    ### Struts2登录拦截器实现方法详解 #### 一、背景与需求概述 在Web应用开发过程中,用户认证是一项常见的需求。Struts2框架作为Java Web开发中的一个重要工具,提供了丰富的功能来支持这类需求。本篇文章将围绕一...

    解决重复提交、上传组件

    前端通过禁用按钮或显示加载状态,后端通过拦截器和session管理来防止重复请求。对于文件上传,应处理并发、重名和安全问题。通过这样的方式,我们可以确保Web应用的数据一致性,并提供良好的用户体验。

    Struts+Hibernate+Spring常见面试题

    另外,可以通过实现`ActionSupport`的`validate()`方法进行请求级别的数据校验,或者使用基于拦截器的线程绑定解决方案,如Spring的`ThreadLocal`。 【Hibernate】 Hibernate是一个对象关系映射(ORM)框架,用于...

    完美解决ajax访问遇到Session失效的问题

    以下是一个简单的Struts2拦截器示例,用于处理Ajax请求和Session失效的情况: ```java public String intercept(ActionInvocation invocation) throws Exception { ActionContext ac = invocation....

    Struts入门实践

    - **分发请求**: Struts 的控制器(`ActionServlet`)拦截请求,并调用相应的 `Action` 类。 - **执行Action**: `Action` 类执行业务逻辑,返回 `ActionForward` 对象。 - **页面渲染**: 根据 `ActionForward` 指定...

    jsessionid存在的问题及其解决方案

    在Web开发中,`jsessionid`是一个常见的概念,它关联到Java服务器会话(Session)的管理。本文将深入探讨`jsessionid`存在的问题以及相应的解决方案,并结合提供的`DisableUrlSessionFilter.java`和`web.xml`文件来...

    ajax请求Session失效问题

    因此,我们可以在服务器端的拦截器(如Struts2的Interceptor)中检查这个字段,以此来区分AJAX请求和普通请求。 以下是一个简单的示例,展示了如何在Struts2拦截器中处理这个问题: ```java public String ...

    SpringMVC学习流程图

    Spring MVC以其高度模块化、可插拔的特性著称,开发者可以选择单独使用它,或者与其他MVC框架如Struts 1或Struts 2集成。 ### 拦截器 在Spring MVC中,拦截器扮演着类似过滤器的角色,但其功能更为丰富。拦截器允许...

Global site tag (gtag.js) - Google Analytics