1、拦截器相关基础类
Interceptor接口
--> AbstractInterceptor抽象类
--> MethodFilterInterceptor抽象类(支持方法过滤)
2、配置拦截器
<interceptor name="拦截器名" class="拦截器实现类">
3、使用拦截器
<interceptors>
<interceptor name="mySimple" class="com.cjm.SimpleInterceptor"/>
</interceptors>
<action name="login" class="com.cjm.LoginAction">
<result name="success">main.jsp</result>
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="mySimple"/>
</action>
注意:一旦我们为Action显式指定了某个拦截器,则默认的拦截器就不再起作用,如果该Action需要使用默认拦截器,则必须手动配置该拦截器的引用。
4、实现拦截器类
public class SimpleInterceptor extends AbstractInterceptor{
public String intercept(ActionInvocation invocation)throws Exception{
//取得被拦截的Action实例
LoginAction action = (LoginAction) invocation.getAction();
//将控制权转给下一个拦截器,或者转给Action的execute方法
String result = invocation.invoke();
//返回逻辑视图名
return result;
}
}
5、带方法过滤特性的拦截器类
public class MyFilterInterceptor extends MethodFilterInterceptor{
private String name;
public void setName(String name){
this.name = name;
}
public String doIntercept(ActionInvocation invocation)throws Exception{
LoginAction action = (LoginAction) invocation.getAction();
String result = invocation.invoke();
return result;
}
}
<interceptors>
<interceptor name="myFilter" class="com.cjm.MyFilterInterceptor"/>
</interceptors>
<action name="login" class="com.cjm.LoginAction">
<result name="success">main.jsp</result>
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="myFilter">
<param name="name">属性值</param>
<param name="excludeMethods">execute,view,edit</param>
<param name="includeMethods">add,list</param>
</interceptor-ref>
</action>
注意:如果excludeMethods参数和includeMethods参数同时指定了一个方法名,则拦截器会拦截该方法。
6、覆盖拦截器中特定拦截器的参数
语法: <拦截器名>.<参数名>
<interceptor-ref name="myFilter">
<param name="mySimple.name">新属性值</param>
</interceptor-ref>
7、拦截器中设置的参数在Action类中读取
在拦截器类中设置参数值:
valueStack.getContext().put("httpHelper", "参数值");
在Action类中读取该参数值:
ActionContext.getContext().getValueStack().findValue("httpHelper")
8、拦截结果的监听器
实现拦截结果的监听器必须实现PreResultListener接口,该监听器是通过手动注册在拦截器内部的。
invocation.addPreResultListener(new MyPreResultListener());
不要在PreResultListener监听器的beforeResult方法中通过ActionInvocation参数调用invoke方法。
- 大小: 24.3 KB
分享到:
相关推荐
- **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 **3.4 请求转发与重定向** - **转发**:Action 的 execute 方法返回一个字符串,根据这个字符串找到对应...
`struts2_2` 可能指的是 Struts2 的某个特定版本,而 `struts2拦截器笔记.txt` 文件可能包含了关于该版本中拦截器的详细使用和实现方法。通常,笔记会涵盖如何创建自定义拦截器、如何配置拦截器链、以及各种内置拦截...
4. **拦截器(Interceptors)**:拦截器是Struts2的一个强大特性,它允许在Action执行前后插入自定义逻辑。常见的拦截器有:Params拦截器(处理参数绑定),Validation拦截器(进行字段验证),Stack拦截器(包含一...
在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程分离开来的重要组件。本篇将深入探讨Struts2的核心拦截器以及其工作原理。 在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过...
Struts 2.1.8 学习源码内容 Struts2_01FirstDemo : 跑通第一个Struts2的实例 Struts2_02CURD : 关于Struts2的增、删、...Struts2_05Interceptor : Struts2拦截器的使用 Struts2_06FileUpload : Struts2上传文件的使用
2. **拦截器(Interceptors)**:Struts2的核心特性之一,拦截器是在Action执行前后插入的代码片段,可以实现日志记录、权限验证、事务管理等功能。通过配置,可以创建自定义的拦截器链,提高代码的可复用性和可维护...
在实际项目中,Struts2可以处理类型转换、文件上传下载、拦截器(Interceptor)防止重复提交等问题。Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入...
2. **拦截器(Interceptors)**:Struts2的拦截器机制类似于AOP(面向切面编程),允许开发者在Action执行前后插入自定义逻辑,如日志记录、权限验证等,增强了代码的可复用性和可扩展性。 3. **配置灵活性**:...
### Struts2 综合知识点解析 #### 一、Struts2 概述与历史背景 **Struts2** 是一款流行的 Java Web 开发框架,它遵循 MVC (Model-View-Controller) 设计模式,旨在简化 Web 应用程序的开发过程。Struts2 提供了一...
3. **拦截器(Interceptor)**:拦截器是Struts2的一大特色,它允许在Action执行前后插入自定义逻辑,如日志、权限验证、性能监控等。开发者可以通过自定义拦截器实现特定的功能。 4. **结果(Result)**:Action...
在本篇“Struts2学习笔记十一”中,我们将深入探讨Struts2的核心拦截器及其应用。 **1. 拦截器的概念** 拦截器是AOP(面向切面编程)的一部分,在Struts2中,它们作为一系列可插入的处理链,可以在Action执行前后...
2. **拦截器(Interceptors)**:Struts2引入了拦截器机制,允许开发者在Action执行前后插入自定义逻辑,如日志记录、权限验证、性能监控等。拦截器栈的概念使得这些功能可以灵活组合和复用。 3. **结果类型...
Struts2是一个强大的MVC(Model-...Struts2的核心配置文件是`struts.xml`,它负责定义Action、拦截器栈、结果类型、包配置等。在这个文件中,你可以声明你的Action类,定义它们对应的方法以及结果页面。例如: ```xml ...
2. 拦截器:拦截器是Struts2的核心特性,它们在Action执行前后按顺序执行,实现如日志、权限检查、事务管理等功能。自定义拦截器可以扩展框架功能。 四、Action与结果 Action类是Struts2处理请求的核心,每个Action...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
6. **拦截器(Interceptor)**:拦截器是Struts2的一大特色,通过自定义拦截器可以实现登录验证、权限控制等功能,学习如何编写和注册拦截器是提升开发效率的重要一环。 7. **动态方法调用**:Struts2支持动态方法...
笔记中可能详细讲解了Struts2的配置文件,如struts.xml,它是整个应用的配置中心,定义了Action的映射、结果类型、拦截器栈等。在Action配置中,我们可以指定Action类、方法以及对应的URL路径,实现请求与业务的关联...
总结,黑马程序员Struts2 2016版的前3Days笔记重点介绍了Struts2的基础概念、架构、配置、Action、结果类型、视图渲染、标签库以及拦截器等关键知识点。通过深入学习这些内容,开发者能够更好地理解和运用Struts2...