`
raymond.chen
  • 浏览: 1425444 次
  • 性别: 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
分享到:
评论

相关推荐

    Struts 2.1.8_学习源码

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

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

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

    struts2 学习重点笔记

    这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用

    struts2学习笔记

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

    struts2拦截器笔记

    NULL 博文链接:https://zhangzhi199129.iteye.com/blog/1593488

    STRUTS经典笔记

    在实际开发中,还会涉及到Action类的编写、JSP页面的设计、结果类型(Result Types)的设置以及各种拦截器的运用,这些都是Struts 2.0笔记中的重要内容。 总结来说,Struts 2.0是为了解决Struts 1.x的问题而诞生的...

    笔记-Struts2不完美的知识点整理.docx

    4. **强大的拦截器(Interceptor)机制**:拦截器是Struts2处理请求的关键,可以实现如认证、授权、事务管理等功能,无需在每个Action中重复编写代码。 5. **多种视图技术支持**:除了内置的FreeMarker模板引擎,...

    java经典学习笔记,个人总结

    1. Struts2 的概念和优点:Struts2 是在 WebWork2 基础发展而来的,具有无侵入式设计、提供拦截器、类型转换器、多种表现层技术和输入校验等优点。 2. Struts2 的架构设计:Struts2 框架的核心类库是 struts2-core-...

    Struts2笔记.doc

    2. **拦截器机制**:Struts2引入了拦截器,允许开发者实现AOP(面向切面编程),例如进行权限验证、日志记录等,极大地提高了代码的可维护性和复用性。 3. **类型转换器**:Struts2内置了类型转换器,可以自动将...

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

    NULL 博文链接:https://zhaolianyang.iteye.com/blog/870600

    Struts2 学习笔记.doc

    标签在Struts2配置文件中定义了一组相关的Action,它包含了Action的配置、拦截器栈、结果类型等。通过可以组织和分组Action,提高配置的可读性和可维护性。 五、Action: Action是Struts2的核心组件,它代表了应用...

    Struts2超详细学习笔记分享(献给自学新人)

    以上内容仅是Struts2学习的一部分,实际开发中,你还需要掌握Action类的编写,配置文件的使用,拦截器的自定义,以及Struts2提供的各种结果类型和标签库的运用。通过深入理解和实践,你将能够熟练运用Struts2框架...

    Struts2 开发笔记

    标签在Struts2配置文件中定义一组相关的Action,它可以包含多个Action配置、拦截器栈、结果类型等。Namespace通常是在标签内定义的,用于分组Action。 五、Action: Action是Struts2的核心组件,它代表了业务逻辑的...

    struts2详细学习笔记

    通过`struts`标签,我们可以定义全局的常量和拦截器栈。 2. **Package**:包是Struts2中的一个关键概念,用于组织相关的Action和结果(Result)。包可以继承其他包,从而实现配置的复用和分层。`package`标签的属性...

    struts拦截器 课堂笔记

    适合新手借鉴的struts学习笔记,更适合一入门的老手借鉴,个人学习心得

    struts2 笔记(根据尚硅谷视频所记)

    首先,`struts.xml`是Struts2的核心配置文件,用于定义Action、拦截器、结果页面等。它遵循特定的DTD(文档类型定义),在这个例子中是`struts-2.3.dtd`。此文件中的配置会影响整个Struts2应用的行为。 在配置文件...

    struts2的详细笔记

    - `struts-default.xml`:Struts2框架默认加载的配置文件,定义了核心bean和拦截器,并自动包含在`struts.xml`中。 - 其他配置文件如`velocity.properties`、`struts-default.vm`和`struts-plugin.xml`,服务于特定...

Global site tag (gtag.js) - Google Analytics