拦截器在实际开发中经常用到,典型的应用如对全局环境的权限验证。拦截器实现可以体现非常好的封装性,代码也容易维护。
拦截器实现需要如下步骤。
一、实现一个拦截器类
Struts2的拦截器必须实现com.opensymphony.xwork2.interceptor.Interceptor接口和对于方法,如下所示:
1、拦截器实现类
package filter;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class TestInterceptor implements Interceptor {
public void destroy() {
// TODO Auto-generated method stub
}
public void init() {
// TODO Auto-generated method stub
}
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
return invocation.invoke();
}
}
2、 拦截器栈设置
a、创建拦截器堆栈
<interceptors>
<interceptor name="testInter" class="filter.TestInterceptor"></interceptor>
<interceptor-stack name="testStack"> //新建堆栈名
<interceptor-ref name="defaultStack"></interceptor-ref> //设置拦截器堆栈,先加载Struts框架栈
<interceptor-ref name="testInter"></interceptor-ref> //加载自定义拦截器
</interceptor-stack>
</interceptors>
b、设置拦截器拦截的Action
<action name="helloworld" class="test.HelloWorldAction">
<interceptor-ref name="testInter"></interceptor-ref>
<result name="success">/page/hello.jsp</result>
</action>
c、设置拦截所有包中的action
<default-interceptor-ref name="testStack"></default-interceptor-ref>
拦截器的生命周期类似于Servlet的Filter。init()负责创建实例,destroy()负责销毁,而intercept()则类似于doFilter()所有逻辑在该方法中执行。Struts拦截器的内部实现并非基于Servlet的Filter。所以运行机制跟Filter并不相同。
return invocation.invoke();返回一个字符串,该字符串默认返回action方法返回的字符,随后跳转到对应字符串的页面视图。
分享到:
相关推荐
这些内置拦截器已经足够满足大多数场景的需求,但开发人员也可以根据项目需求自定义拦截器。自定义拦截器可以通过继承`Interceptor`接口并实现其中的方法来完成。然后,在配置文件(如`struts.xml`)中注册这些...
Struts2是一个强大的Java web开发框架,它提供了一种组织和控制MVC(模型-视图-控制器)架构的方式...通过自定义拦截器和合理配置,我们可以实现诸如日志记录、事务管理、权限验证等多种业务需求,大大提升了开发效率。
在“Struts2应用开发详解06”这一主题中,我们将深入探讨Struts2中的自定义方法以及相关的开发建议。 自定义方法在Struts2中扮演着至关重要的角色,它们允许开发者扩展框架的功能,以满足特定项目的需求。自定义...
张龙老师的Struts2应用开发详解源码课程,旨在帮助开发者深入理解Struts2框架的工作原理,掌握其核心特性和最佳实践。 1. **Struts2框架概述**: Struts2是Struts1的升级版,由Apache软件基金会维护。它继承了...
在"Struts2应用开发详解02"的主题中,我们将深入探讨Struts2.2的独有特性以及其核心组件之一——StrutsPrepareAndExecute过滤器的源码分析。 首先,让我们来看看Struts2.2的独有特性: 1. **插件化架构**:Struts...
2. Interceptors(拦截器):拦截器是Struts2的一大特色,它们定义了一系列预定义和自定义的行为,如日志、异常处理、事务管理等。拦截器按预定义顺序执行,形成一个执行链。 3. Result:结果表示Action执行后的...
Struts2是一个强大的Java web应用程序框架,它基于MVC(模型-视图-控制器)设计模式,用于构建可维护性和可扩展性高的企业级应用。Struts2的标签库是其核心...总的来说,这个压缩包是学习和开发Struts2应用的宝贵资源。
Struts2的配置主要在struts.xml文件中进行,包括Action配置、结果类型配置、拦截器配置等。Action配置定义了Action类及其关联的URL,结果类型配置决定了Action执行后的跳转逻辑,拦截器配置则允许在Action执行前后...
开发自定义拦截器需要继承`org.apache.struts2.interceptor.Interceptor`接口或者`com.opensymphony.xwork2.interceptor.AbstractInterceptor`抽象类,并实现`intercept()`方法。在这个方法中,你可以添加自己的业务...
开发者可以通过自定义拦截器来扩展框架功能,实现如事务管理、性能监控等需求。 第四章可能涵盖Struts2的Ognl表达式语言和标签库。Ognl(Object-Graph Navigation Language)是Struts2中的默认表达式语言,用于在...
通过以上详细介绍,我们了解了Struts2中的拦截器和验证框架的基本概念、如何创建自定义拦截器以及如何配置拦截器和使用验证功能。这些知识点对于初学者来说非常重要,能够帮助他们更好地理解和使用Struts2框架。
<interceptor-ref name="自定义拦截器名"> 参数名">参数值 </interceptor-ref> ``` #### 五、Struts2内建拦截器 Struts2提供了许多内建的拦截器,它们覆盖了常见的功能需求,例如: - **模型驱动...
本教程“Struts2应用开发详解(第二讲)”是系列教程的一部分,共计五部分,我们将深入探讨Struts2的核心概念和技术。 在Struts2框架中,Model代表业务逻辑,View负责展示,而Controller则是这两者之间的协调者,处理...
Struts2 Interceptor详解 Struts2作为一款流行的Java Web框架,其强大的功能之一就是拦截器(Interceptor)。拦截器在MVC模式中扮演着重要角色,它可以对请求进行预处理和后处理,提供了灵活的扩展机制,使得业务...
通过自定义拦截器,可以实现高度灵活的业务逻辑控制。同时,Struts.2提供了多种结果类型,如dispatcher、redirect、chain等,用于控制页面跳转和数据返回,极大地简化了Web应用的开发流程。 ### 高级特性与框架整合...
Struts2是一个强大的Java Web应用程序开发框架,基于Model-View-Controller(MVC)设计模式,旨在简化企业级Web应用的开发过程。本讲解将详细阐述Struts2的基础概念、核心架构以及如何进行实际的应用开发。 一、...
- **自定义拦截器**:可以通过实现`Interceptor`接口或继承`AbstractInterceptor`类来创建自定义拦截器,以满足特定的需求。 #### 4. Struts2的视图技术 - **默认视图**:通常使用JSP作为默认视图技术。 - **其他...
在 struts.xml 中配置自定义拦截器栈。 **4.3 文件上传与下载** - **文件上传**:利用 Struts2 的 FileUploadInterceptor 实现文件上传功能。 - **文件下载**:可以通过 Action 的响应流来实现文件下载。 #### 五...