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的拦截器机制为开发者提供了强大的功能,使得应用程序能够更好地管理复杂的业务流程和控制逻辑,同时保持代码的清晰和模块化。通过理解并熟练运用拦截器,我们可以构建更健壮、更安全的Web应用。
### Struts2拦截器实例——登录校验 #### 概述 在Web应用开发中,登录验证是一项重要的功能。为了确保只有已登录的用户才能访问特定的资源或页面,通常会采用拦截器来实现这一需求。本文档将详细介绍如何在Struts2...
### Struts2拦截器权限设置 #### 背景与目的 在开发Web应用程序时,权限控制是一项重要的功能。它确保只有经过验证的用户才能访问特定的资源或执行某些操作。Struts2作为一款流行的Java Web框架,提供了丰富的功能...
自定义拦截器需要继承`org.apache.struts2.interceptor.AbstractInterceptor`类,并覆盖`intercept()`方法。下面是一个简单的自定义拦截器示例: ```java public class TokenAtionInterceptor extends ...
Java 中的 Struts2 拦截器详解 Struts2 拦截器是一种强大且灵活的机制,它可以在 action 之前或之后执行某些操作,实现一些通用的功能,如权限认证、日志记录和登陆判断等。 1. 什么是拦截器? 拦截器相当于过滤...
本文档旨在为初学者提供Struts2框架的基础知识概览,涵盖了Struts2的基本概念、配置方式、表单验证、国际化支持、拦截器机制、IOC模式、标签库使用、OGNL表达式语言、上传下载功能以及与其他流行框架的集成等内容。...
- **设置上下文**:在OGNL执行之前,需要先设置好上下文环境,通常是在Struts2的拦截器中进行设置。 - **读取上下文**:在OGNL表达式中可以通过特定的语法来读取上下文中的数据。 #### 五、OGNL的高级特性 OGNL...
这通常通过一个Action方法来完成,该方法接收一个`String`类型的`locale`参数,然后将其设置到`session`或`request`上下文中。例如: ```java public class LocaleAction extends ActionSupport { private String ...
在Struts2中,过滤器与拦截器(Interceptor)一起工作,提供了强大的请求处理和业务逻辑控制。 一、防止浏览器缓存页面的过滤器 `ForceNoCacheFilter`是一个示例,它的目的是确保浏览器不缓存任何页面内容。这在...
Struts2的核心是基于拦截器的架构,这种设计使得业务逻辑控制器与Servlet API完全解耦,增强了框架的灵活性和可扩展性。 在Struts2中,`<s:if>`标签是用于条件判断的,它允许开发者在页面中根据某些条件展示不同的...
Java+Struts2 防盗链(Filter 不可过滤 Action) 防盗链是指防止在没有通过合理的登录界面,直接进入到系统中的机制...使用 Filter 和 Struts2 的拦截器,我们可以实现防盗链机制,避免用户直接访问系统中的某些页面。
在Java Web应用中,特别是使用Struts2框架时,拦截器扮演着至关重要的角色。下面我们将深入探讨如何实现并使用Java自定义拦截器。 首先,我们来看`LoginInterceptor`类,它是基于Struts2框架的自定义拦截器。`...
### Struts2登录拦截器实现方法详解 #### 一、背景与需求概述 在Web应用开发过程中,用户认证是一项常见的需求。Struts2框架作为Java Web开发中的一个重要工具,提供了丰富的功能来支持这类需求。本篇文章将围绕一...
前端通过禁用按钮或显示加载状态,后端通过拦截器和session管理来防止重复请求。对于文件上传,应处理并发、重名和安全问题。通过这样的方式,我们可以确保Web应用的数据一致性,并提供良好的用户体验。
另外,可以通过实现`ActionSupport`的`validate()`方法进行请求级别的数据校验,或者使用基于拦截器的线程绑定解决方案,如Spring的`ThreadLocal`。 【Hibernate】 Hibernate是一个对象关系映射(ORM)框架,用于...
以下是一个简单的Struts2拦截器示例,用于处理Ajax请求和Session失效的情况: ```java public String intercept(ActionInvocation invocation) throws Exception { ActionContext ac = invocation....
- **分发请求**: Struts 的控制器(`ActionServlet`)拦截请求,并调用相应的 `Action` 类。 - **执行Action**: `Action` 类执行业务逻辑,返回 `ActionForward` 对象。 - **页面渲染**: 根据 `ActionForward` 指定...
在Web开发中,`jsessionid`是一个常见的概念,它关联到Java服务器会话(Session)的管理。本文将深入探讨`jsessionid`存在的问题以及相应的解决方案,并结合提供的`DisableUrlSessionFilter.java`和`web.xml`文件来...
因此,我们可以在服务器端的拦截器(如Struts2的Interceptor)中检查这个字段,以此来区分AJAX请求和普通请求。 以下是一个简单的示例,展示了如何在Struts2拦截器中处理这个问题: ```java public String ...
Spring MVC以其高度模块化、可插拔的特性著称,开发者可以选择单独使用它,或者与其他MVC框架如Struts 1或Struts 2集成。 ### 拦截器 在Spring MVC中,拦截器扮演着类似过滤器的角色,但其功能更为丰富。拦截器允许...