//PS:可以直接继承 AbstractInterceptor 抽象类
//(帮我们空实现了 初始化和销毁2个方法 让我们只要关注 —拦截—这个方法)
public class MyInterceptor implements Interceptor {
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("MyInterceptor 正在销毁");
}
@Override
public void init() {
// TODO Auto-generated method stub
System.out.println("执行拦截");
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
System.out.println("MyInterceptor 正在初始化");
String result=invocation.invoke(); //判断如果有下一个拦截器 就调用下一个
//如果没有了 执行action的execute()
return result;
}
}
----------------------配置如下-------------------------------------
<!-- 配置拦截器 -->
<interceptors>
<!--name为 拦截器的名字 class为 拦截器的类全名 -->
<interceptor name="myInterceptor" class="zl.MyInterceptor">
<!-- 现在只是声明好了拦截器 要在具体的action里配置它的应用 -->
</interceptor>
</interceptors>
<!--配置拦截器栈 -->
<interceptor-stack name="demoInterceptor">
<interceptor-ref name="myInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
<!--PS:也可以直接定义默认来拦截器栈 就可以不用在action里再配置-->
<default-interceptor-ref name="demoInterceptor" />
<!--如不设置默认,则action中配置-->
<!--配置Action-->
<action name="input3" class="zl.PointAction" method="exec3">
<result>/output.jsp</result>
<result name="input">/input.jsp</result>
<!-- 在action里配置拦截器 -->
<interceptor-ref name="demoInterceptor"></interceptor-ref>
</action>
分享到:
相关推荐
- 在User.xml文件中,定义了一个名为`user`的包,它继承了`default`包,因此继承了`default`包中的拦截器配置。 - `<action>`元素定义了Action,`class`属性指定Action类,`name`属性是Action的名称。`<result>`...
这篇文章将深入探讨Struts2拦截器的概念、工作原理以及如何在实际应用中使用它们。 **一、什么是Struts2拦截器** 拦截器是基于AOP(面向切面编程)思想的组件,它可以理解为在Action调用前后插入的逻辑处理。在...
通过这两个实例,你将更深入地理解Struts2拦截器的工作原理和配置方式,以及它们如何在实际项目中发挥作用。记得在实践中多尝试,理解拦截器如何与其他Struts2组件协作,以提升你的Web应用开发技能。
2. **配置拦截器**:在`struts.xml`配置文件中定义拦截器,指定其执行顺序和关联的Action。 3. **注册拦截器**:将自定义拦截器加入到`struts-default`或`struts-plugin`拦截器栈中,或者创建新的拦截器栈并应用到...
- 自定义Struts时,确保你的应用服务器已经配置了Struts2的库,包括核心库、兼容性库以及可能需要的其他依赖。在Web应用的`web.xml`中,可能还需要配置Struts2的过滤器来启动框架。 9. **测试与调试**: - 为了...
本文将深入探讨Struts2拦截器的基本概念、工作原理以及其实现机制,并结合实际应用场景来展示如何利用拦截器提高代码的复用性与可维护性。 #### 二、拦截器的概念与作用 拦截器(Interceptor)是一种设计模式,...
### Struts2拦截器的使用方法 #### 一、Struts2拦截器概述 ...通过以上介绍,我们可以了解到Struts2拦截器的基本使用方法及配置方式,这对于理解Struts2框架的工作机制以及优化应用架构具有重要意义。
在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...
通过下载的源代码,你可以看到具体的实现细节,包括`struts2.xml`和`web.xml`的配置,以及自定义拦截器类的代码。通过阅读和理解这些代码,你可以更好地掌握Struts2拦截器的工作原理,并在实际项目中灵活运用。 ...
在Struts2中,拦截器是实现业务逻辑控制和增强功能的重要机制,它们扮演着类似于AOP(面向切面编程)的角色,允许在动作执行前后插入自定义逻辑。在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何...
分析这个文件或目录可以帮助我们更深入地理解Struts2拦截器的内部工作机制,包括它如何与ActionInvocation交互,以及如何处理请求和响应。 总结来说,Struts2拦截器是框架的核心部分,它们提供了一种灵活的方式,以...
拦截器是Struts2框架的核心特性之一,它们扮演着处理请求、增强功能和实现业务逻辑的角色。在Struts2中,拦截器就像过滤器一样工作,通过链式调用在动作执行前后进行预处理和后处理。 首先,我们来理解一下拦截器的...
2. **拦截器配置**: - 在Struts2配置文件中定义拦截器,比如创建一个名为`myInterceptor`的拦截器,指定其类为`com.zzz.struts2.interceptor.MyInterceptor`,并设置系统初始化参数,如`张钊钊</param>`。 - 创建...
通过这个例子,你可以学习到如何创建、注册拦截器,以及如何在Struts2框架中构建拦截器栈,从而更灵活地管理应用程序的行为。 总结来说,Struts2的拦截器机制提供了强大的功能,允许开发者以声明式的方式控制请求的...
本篇文章将深入探讨如何实现自定义拦截器及其在Struts2中的详细配置。 首先,我们来了解自定义拦截器的基本步骤: 1. **创建拦截器类**:自定义拦截器需要继承Struts2提供的`Interceptor`接口或实现`intercept()`...
2. **拦截**:当一个请求到达Action时,Struts2会根据配置的拦截器栈顺序,先调用每个拦截器的`intercept()`方法,然后才执行Action的业务逻辑。 3. **后处理**:Action执行完毕后,Struts2会逆序遍历拦截器栈,调用...
我们需要在struts.xml配置文件中声明这个拦截器,并将其加入到默认的拦截器栈或者特定Action的拦截器配置中。例如: ```xml <struts> <package name="default" namespace="/" extends="struts-default"> <!-- ...
2. **拦截器的编写和使用**:创建自定义拦截器类,实现`Interceptor`接口,以及如何在配置文件中引用拦截器。 3. **Action的编写**:创建Action类,定义业务方法,使用注解进行配置。 4. **JPA基础**:了解JPA的基本...
当一个请求到达时,Struts2会按照配置的拦截器栈顺序逐个调用这些拦截器,然后执行Action,最后再按逆序返回。拦截器可以进行如权限验证、日志记录、性能监控等多种操作。 2. **创建自定义拦截器** 创建自定义拦截...
2. **配置拦截器**:在Struts2的配置文件(struts.xml)中,你需要声明并配置自定义的拦截器。这包括设置拦截器的名称和实现类,以及可能的参数。 ```xml <param name="username">John <!-- 其他参数 --> ``` ...