import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class ExampleInterceptor extends AbstractInterceptor {
//重写抽象拦截器的拦截方法
@Override
public String intercept(ActionInvocation arg0) throws Exception {
System.out.println("start invoking2...");
String result =arg0.invoke();
System.out.println("end invoking2...");
return result;
}
}
<struts>
<!-- Action所在包定义 -->
<package name="C04.3.2" extends="struts-default">
<!-- 拦截器配置定义 -->
<interceptors>
<interceptor name="example"
class="com.example.struts.interceptor.ExampleInterceptor">
</interceptor>
<!--
拦截器栈配置定义
<interceptor-stack name="exampleStack">
<interceptor-ref name="example"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
-->
</interceptors>
<action name="Login"
class="com.example.struts.action.LoginAction">
<result name="input">/jsp/login.jsp</result>
<result name="success">/jsp/success.jsp</result>
<!-- Action拦截器配置定义 -->
<interceptor-ref name="example"></interceptor-ref>
<!-- Action拦截器栈配置定义 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
struts.xml配置文件中,在<Action>前还是定义名为“example”的拦截器。在<Action>中,配置“example”拦截器。
注意:在<Action>中还配置了“defaultStack”拦截器栈,这是因为如果在<Action>中不配置该拦截器栈,则Login.action运行时候只会执行配置的“example”拦截器,不会执行“defaultStack”拦截器栈。而且“defaultStack”是Struts2配置的缺省拦截器栈,在struts-default.xml中定义的拦截器都是由它来调用执行。Struts2规定如果在<Action>中,开发人员配置了自己定义的拦截器或拦截器栈,不显式在struts.xml配置文件中配置“defaultStack”拦截器栈,则所有struts-default.xml中定义的拦截器都不会执行即不执行“defaultStack”拦截器栈。当然如果在<Action>中开发人员没有配置自己定义的拦截器或拦截器栈,就算不显示配置“defaultStack”拦截器栈,则“defaultStack”拦截器栈是会执行的。
分享到:
相关推荐
Struts2中的拦截器是一个实现了`Interceptor`接口或者继承了`AbstractInterceptor`抽象类的Java类。当一个请求到达时,Struts2会按照配置的拦截器栈顺序逐个调用这些拦截器,然后执行Action,最后再按逆序返回。...
Struts2还提供了一些抽象类如`AbstractInterceptor`和`MethodFilterInterceptor`,简化了拦截器的实现过程,例如`MethodFilterInterceptor`允许开发者指定要过滤的Action方法。 4. **定义拦截器示例** 下面是一个...
本文将深入探讨Struts2的拦截器使用,结合实例和源码分析,帮助你更好地理解和运用这一特性。 一、拦截器的概念与作用 拦截器是Struts2框架的核心组件之一,它是在动作执行前后插入的一段代码,能够对请求进行...
具体来说,Struts2的拦截器是通过实现`Interceptor`接口或者继承`AbstractInterceptor`抽象类来创建的。核心方法是`intercept()`,该方法接收一个`ActionInvocation`对象作为参数,这个对象封装了当前请求的信息,...
在Struts2中,创建一个拦截器非常简单,只需要实现`Interceptor`接口或者继承`AbstractInterceptor`抽象类。通常,我们会选择继承`AbstractInterceptor`,因为它提供了一些基本的方法和属性。然后在`intercept()`...
- 在Struts2中,拦截器的使用通过配置文件`struts.xml`进行。你可以添加、删除或调整拦截器的执行顺序,只需在配置文件中指定即可。这种可插拔式设计使得开发者可以根据需求自由定制拦截器链。 4. **内置拦截器**...
1. **创建拦截器类**:继承`org.apache.struts2.interceptor.Interceptor`抽象类或实现`com.opensymphony.xwork2.interceptor.Interceptor`接口。在类中重写`intercept()`方法,这里我们将进行权限检查。 ```java ...
开发者可以通过实现Struts2的`Interceptor`接口或者继承`AbstractInterceptor`抽象类来创建自定义拦截器。然后在struts.xml配置文件中声明拦截器并指定其在拦截器栈中的位置。 4. 配置拦截器: 在Struts2的配置...
Struts2中的拦截器需要实现`Interceptor`接口,但大部分情况下我们会继承`AbstractInterceptor`抽象类来简化实现。`AbstractInterceptor`提供了一个空的初始化`init()`和销毁`destroy()`方法,以及一个抽象的`...
- **创建拦截器类**:实现`Interceptor`接口或继承`AbstractInterceptor`抽象类。需要覆盖`init()`、`destroy()`和`intercept()`这三个方法。`init()`在拦截器实例化后调用,用于初始化;`destroy()`在拦截器销毁前...
在Struts2中,拦截器是实现了`Interceptor`接口或者继承了`AbstractInterceptor`抽象类的类。 2. 拦截器栈:Struts2中的拦截器不是单独工作的,而是按照特定顺序组成的“拦截器栈”。每个拦截器都可以在调用下一个...
Struts2 拦截器详解 Struts2 框架中的拦截器(Interceptor)是一种强大的机制,它允许开发者在Action执行前后插入自定义的行为,增强了...通过理解并熟练使用拦截器,可以极大地提高Struts2应用的灵活性和可维护性。
在这个"struts2的自定义拦截器例子"中,我们将深入探讨如何创建和使用自定义拦截器。 首先,拦截器的本质是Java的面向切面编程(AOP)思想在Struts2中的体现。它们允许开发者在动作执行前后插入自定义的逻辑,例如...
在Struts2中,拦截器需要实现`Interceptor`接口或继承`AbstractInterceptor`抽象类。`intercept`方法是拦截器的核心,它接收一个`ActionInvocation`对象,该对象包含了当前Action的上下文信息。 ```java public ...
2. **配置拦截器**: 在Struts2的配置文件(如`struts.xml`或`struts-default.xml`)中,使用`<interceptors>`标签定义拦截器,`<interceptor>`标签定义单个拦截器,通过`name`属性指定拦截器名,`class`属性指定拦截...
创建自定义拦截器的第一步是定义一个类,该类需要实现`Interceptor`接口或者继承`AbstractInterceptor`抽象类。在这个例子中,我们可能会创建一个名为`CustomInterceptor`的类,并覆盖`intercept()`方法。这个方法会...
在本篇文章中,我们将深入探讨Struts2的日志拦截器,以及如何使用`LoginfoInterceptor.java`来实现自定义的日志拦截。 首先,让我们了解什么是拦截器。在Struts2中,拦截器是基于AOP(面向切面编程)的概念,它们是...
在Struts2中,拦截器是一个实现了`Interceptor`接口或者继承自`AbstractInterceptor`抽象类的Java类。它们通过`com.opensymphony.xwork2.interceptor.Interceptor`接口中的三个方法——`intercept()`、`destroy()`和...
Struts2 Trim拦截器过滤首尾空格 Struts2框架提供了拦截器机制,可以在Action执行前后执行某些操作,以满足特定的需求。TrimInterceptor就是一个这样的拦截器,它的主要功能是过滤请求数据的首尾空格。 ...