如果用户要开发自己的拦截类,需要实现Interceptor接口,它包括三个方法:
Init()
destroy()
intercept(ActionInvocation action)
另一种只需继承AbstractInterceptor类实现 AbstractInterceptor方法
拦截器在strut2中配置的详细解析
<package name="default" extends="struts-default" namespace="/">
<interceptors>
//自定义的一个拦截器 name为 login_authority, class为拦截器的处理的类名
<interceptor name="login_authority"class="com.TestOfAuthorityInterceptor">
//拦截器中初始的参数
<param name="user">lisi</param></interceptor>
//自定义的一个拦截器 name为 zz_test, class为拦截器的处理的类名
<interceptor name="zz_test" class="com.TestOfAuthorityInterceptor">
//拦截器中初始的参数
<param name="user">zhangsan</param></interceptor>
//以下是拦截器栈,name为拦截器栈的名称
<interceptor-stack name="mystack">
//引入默认的拦截器栈
<interceptor-ref name="defaultStack"></interceptor-ref>
//引入自定义的拦截器栈 login_authority 拦截器栈按顺序执行
<interceptor-ref name="login_authority"></interceptor-ref>
//引入自定义的拦截器栈 zz_test
<interceptor-ref name="zz_test"></interceptor-ref>
</interceptor-stack>
</interceptors>
//如果需要将自定义的拦截器栈定义为默认的拦截器栈,只需要在此处代码加入 mystack为自定义的拦截器栈
//<default-interceptor-ref name="mystack" />
<global-results>
<result name="authorizeFailed">/authorizeFailed.jsp</result>
<result name="zs">/zhangsan.jsp</result>
<result name="ls">/lisiUser.jsp</result>
</global-results>
<action name="demo" class="com.Demo">
<interceptor-ref name="timer"></interceptor-ref>
<result name="success">/ok.jsp</result>
</action>
<action name="reg" class="com.Reg">
<interceptor-ref name="token"></interceptor-ref>
<result name="invalid.token">/regerr.jsp</result>
<result name="success">/regok.jsp</result>
</action>
<action name="user_*" method="{1}" class="com.UserAction">
//此处引入了拦截器栈,需要进行拦截处理
<interceptor-ref name="mystack"></interceptor-ref>
<result name="success">/index.jsp</result>
<result name="input">/authorizeFailed.jsp</result>
</action>
</package>
如需执行拦截器栈则必须在 public String intercept(ActionInvocation invoker)方法中
调用invocation.invoke()方法,否则只会执行第一个拦截器,后面的拦截器不会执行
分享到:
相关推荐
- **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 **3.4 请求转发与重定向** - **转发**:Action 的 execute 方法返回一个字符串,根据这个字符串找到对应...
在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程分离开来的重要组件。本篇将深入探讨Struts2的核心拦截器以及其工作原理。 在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过...
笔记中可能详细讲解了Struts2的配置文件,如struts.xml,它是整个应用的配置中心,定义了Action的映射、结果类型、拦截器栈等。在Action配置中,我们可以指定Action类、方法以及对应的URL路径,实现请求与业务的关联...
在本篇“Struts2学习笔记十一”中,我们将深入探讨Struts2的核心拦截器及其应用。 **1. 拦截器的概念** 拦截器是AOP(面向切面编程)的一部分,在Struts2中,它们作为一系列可插入的处理链,可以在Action执行前后...
2. 拦截器:拦截器是Struts2的核心特性,它们在Action执行前后按顺序执行,实现如日志、权限检查、事务管理等功能。自定义拦截器可以扩展框架功能。 四、Action与结果 Action类是Struts2处理请求的核心,每个Action...
4. **拦截器(Interceptors)**:拦截器是Struts2的一个强大特性,它允许在Action执行前后插入自定义逻辑。常见的拦截器有:Params拦截器(处理参数绑定),Validation拦截器(进行字段验证),Stack拦截器(包含一...
适合新手借鉴的struts学习笔记,更适合一入门的老手借鉴,个人学习心得
本笔记主要涵盖了Struts2的基础知识,包括但不限于配置、Action、拦截器、结果类型以及异常处理等内容。 1. **Struts2框架简介** Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,弥补了Struts1在...
在实际项目中,Struts2可以处理类型转换、文件上传下载、拦截器(Interceptor)防止重复提交等问题。Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入...
首先,Struts2的处理流程是通过一系列的组件协作完成的,包括Filter Dispatcher(过滤器调度器)、Action、Interceptor(拦截器)和Result。当用户发起HTTP请求时,Struts2的过滤器(如TestFilter示例)会捕获请求,...
3. **定义struts.xml**:在classpath中放置struts.xml文件,这是Struts2的核心配置文件,用于声明包、结果类型、拦截器以及Action等元素。 4. **创建视图和控制器**:在项目中编写JSP页面作为视图,同时定义Action类...
通过`struts`标签,我们可以定义全局的常量和拦截器栈。 2. **Package**:包是Struts2中的一个关键概念,用于组织相关的Action和结果(Result)。包可以继承其他包,从而实现配置的复用和分层。`package`标签的属性...
Struts2是一个强大的MVC(Model-...Struts2的核心配置文件是`struts.xml`,它负责定义Action、拦截器栈、结果类型、包配置等。在这个文件中,你可以声明你的Action类,定义它们对应的方法以及结果页面。例如: ```xml ...
- Struts2框架自身提供了处理文件上传的拦截器`FileUploadInterceptor`,简化了文件上传的过程。 - 开发者可以通过简单的API调用来完成文件的存储。 **文件上传步骤:** 1. **创建上传界面**:设计一个简单的HTML...
- **拦截器(Interceptor)**:Struts2的拦截器机制使得开发者可以插入自定义的处理逻辑,如日志、权限检查、事务管理等,增强了立体结构的灵活性。 - **插件支持**:Struts2拥有丰富的插件系统,如Struts2-...
- 基于 Spring AOP 思想的拦截器机制,易于扩展和定制。 - 强大的输入校验功能。 **历史背景**: - **Struts1 vs. Struts2**: - **共同点**: 都遵循 MVC 设计模式。 - **不同点**: Struts1 与 Servlet API 耦合...
同时,还可以包含拦截器配置、结果类型定义等,为Action提供更多的定制化设置。 三、Action Action是Struts2的核心组件,它负责处理用户的请求并返回响应。一个Action通常对应于一个业务逻辑,可以处理特定的用户...
总结,黑马程序员Struts2 2016版的前3Days笔记重点介绍了Struts2的基础概念、架构、配置、Action、结果类型、视图渲染、标签库以及拦截器等关键知识点。通过深入学习这些内容,开发者能够更好地理解和运用Struts2...
- 在`struts.xml`中配置Token拦截器。 - 在Action类中处理Token验证逻辑。 #### 八、杂项 **8.1 常见问题解答** - **问题汇总**:针对Struts2开发过程中常见的问题进行总结和解答。 以上是基于文档提供的信息...