`
raymond.chen
  • 浏览: 1437469 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

读书笔记:Struts2拦截器

阅读更多

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 学习重点笔记

    - **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 **3.4 请求转发与重定向** - **转发**:Action 的 execute 方法返回一个字符串,根据这个字符串找到对应...

    struts2拦截器笔记

    `struts2_2` 可能指的是 Struts2 的某个特定版本,而 `struts2拦截器笔记.txt` 文件可能包含了关于该版本中拦截器的详细使用和实现方法。通常,笔记会涵盖如何创建自定义拦截器、如何配置拦截器链、以及各种内置拦截...

    struts2四天的学习笔记

    4. **拦截器(Interceptors)**:拦截器是Struts2的一个强大特性,它允许在Action执行前后插入自定义逻辑。常见的拦截器有:Params拦截器(处理参数绑定),Validation拦截器(进行字段验证),Stack拦截器(包含一...

    struts2学习笔记十(第10讲.Struts2的核心 拦截器)

    在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程分离开来的重要组件。本篇将深入探讨Struts2的核心拦截器以及其工作原理。 在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过...

    Struts 2.1.8_学习源码

    Struts 2.1.8 学习源码内容 Struts2_01FirstDemo : 跑通第一个Struts2的实例 Struts2_02CURD : 关于Struts2的增、删、...Struts2_05Interceptor : Struts2拦截器的使用 Struts2_06FileUpload : Struts2上传文件的使用

    学习笔记—Struts2

    2. **拦截器(Interceptors)**:Struts2的核心特性之一,拦截器是在Action执行前后插入的代码片段,可以实现日志记录、权限验证、事务管理等功能。通过配置,可以创建自定义的拦截器链,提高代码的可复用性和可维护...

    struts2学习笔记(完美总结)——转自OPEN经验库

    在实际项目中,Struts2可以处理类型转换、文件上传下载、拦截器(Interceptor)防止重复提交等问题。Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入...

    Struts2学习笔记

    2. **拦截器(Interceptors)**:Struts2的拦截器机制类似于AOP(面向切面编程),允许开发者在Action执行前后插入自定义逻辑,如日志记录、权限验证等,增强了代码的可复用性和可扩展性。 3. **配置灵活性**:...

    struts2综合笔记

    ### Struts2 综合知识点解析 #### 一、Struts2 概述与历史背景 **Struts2** 是一款流行的 Java Web 开发框架,它遵循 MVC (Model-View-Controller) 设计模式,旨在简化 Web 应用程序的开发过程。Struts2 提供了一...

    北京圣思园Struts2 全套笔记 课件 详解

    3. **拦截器(Interceptor)**:拦截器是Struts2的一大特色,它允许在Action执行前后插入自定义逻辑,如日志、权限验证、性能监控等。开发者可以通过自定义拦截器实现特定的功能。 4. **结果(Result)**:Action...

    struts2学习笔记十一(第11讲.Struts2的核心 拦截器续)

    在本篇“Struts2学习笔记十一”中,我们将深入探讨Struts2的核心拦截器及其应用。 **1. 拦截器的概念** 拦截器是AOP(面向切面编程)的一部分,在Struts2中,它们作为一系列可插入的处理链,可以在Action执行前后...

    北京圣思园张龙老师Struts2全部课堂笔记

    2. **拦截器(Interceptors)**:Struts2引入了拦截器机制,允许开发者在Action执行前后插入自定义逻辑,如日志记录、权限验证、性能监控等。拦截器栈的概念使得这些功能可以灵活组合和复用。 3. **结果类型...

    struts2学习笔记

    Struts2是一个强大的MVC(Model-...Struts2的核心配置文件是`struts.xml`,它负责定义Action、拦截器栈、结果类型、包配置等。在这个文件中,你可以声明你的Action类,定义它们对应的方法以及结果页面。例如: ```xml ...

    struts2学习笔记总结

    2. 拦截器:拦截器是Struts2的核心特性,它们在Action执行前后按顺序执行,实现如日志、权限检查、事务管理等功能。自定义拦截器可以扩展框架功能。 四、Action与结果 Action类是Struts2处理请求的核心,每个Action...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    达内struts2全套学习资料(包括练习和笔记有详尽的代码)

    6. **拦截器(Interceptor)**:拦截器是Struts2的一大特色,通过自定义拦截器可以实现登录验证、权限控制等功能,学习如何编写和注册拦截器是提升开发效率的重要一环。 7. **动态方法调用**:Struts2支持动态方法...

    张龙圣思园struts2学习笔记word

    笔记中可能详细讲解了Struts2的配置文件,如struts.xml,它是整个应用的配置中心,定义了Action的映射、结果类型、拦截器栈等。在Action配置中,我们可以指定Action类、方法以及对应的URL路径,实现请求与业务的关联...

    [黑马程序员Struts2 2016版视频] 前3Days笔记

    总结,黑马程序员Struts2 2016版的前3Days笔记重点介绍了Struts2的基础概念、架构、配置、Action、结果类型、视图渲染、标签库以及拦截器等关键知识点。通过深入学习这些内容,开发者能够更好地理解和运用Struts2...

Global site tag (gtag.js) - Google Analytics