`

Struts2拦截器基本流程

阅读更多
Struts2拦截器(动态代理)
1. 实现接口:Interceptor顶层接口,拦截器都必须直接或间接实现这个接口,后面介绍继承类。public class MyInterceptor implements Interceptor{init()方法 public String intercept(ActionInvocation invocation) throws Exception {
String result = invocation.invoke(); return result;} destroy()方法 }
2. Struts.xml配置:
<package name = “struts2 ” extends = “struts-default”>
<interceptors>
   <interceptor name=”myIntercept” class = “com.test.interceptor.MyInterceptor”>
  <param name = “hello”>world</param>
</interceptor>
   <interceptor-stack name=”mystack”>
      <interceptor-ref name = “myIntercept”></interceptor-ref>
      <interceptor-ref name = “defaultstack”></interceptor>
   </interceptor-stack>
</interceptors>
<default-interceptor-ref name = “myStack”></default-interceptor-ref>
<action name=”register” class = “com.test.action.RegisterAction” method=”test”>
   <result name = “login” class=””>/login.jsp</result>
     
</action>
</package>
extends : 继承Struts2中的包内容,同时也继承了Struts2中的拦截器。
拦截器栈:
<interceptor-stack name = “basicStack”>
   <interceptor-ref name = “exception”>
   <interceptor-ref name = “servletConfig”>
   <interceptor-ref name = “prepare”>

   <interceptor-ref name = “checkbox”>

   <interceptor-ref name = “params”>


</interceptor-stack>
拦截器栈可以由拦截器组成也可以由拦截器栈组成。栈可以包含栈。
当手动的引用一个拦截器时,Struts2就不会将默认的拦截器栈赋到action中引用 。如果想引用默认的拦截器,需要在action标签中添加如下代码:<interceptor-ref name = “defaultStack”></interceptor-ref>

如果没有添加手动的拦截器,那么Struts2会将默认的拦截器添加到action中,如果添加了手动的拦截器,那么默认的拦截器就不会起作用,想使用默认的拦截器,如上所说。
一般在使用拦截器时不是实现Interceptor接口,而是直接继承AbstractInterceptor,AbstractInterceptor也是实现Interceptor接口,他只是使用intercept()方法,而没有实现init()、destroy()方法,

方法过滤拦截器:
细化到拦截某一个方法,而不是指定某个Action,继承MethodFilterInterceptor类。
public class MyInterceptor3 extends MethodFilterInterceptor{
   protected String doIntercept(ActionInvocation invocation ) throws Exception{
   String result = invocation.invoke();
return result;
}
}

Struts.xml配置:
<interceptors>
  <interceptor name = “myInterceptor3” class = “com.test.interceptor.MyInterceptor3”>
  </interceptor>
</interceptors>
<action  method=”test”>
  <interceptor-ref name = “myInterceptor3”>
   <param name=”includeMethods”>test,execute</param>
   <param name=”excludeMethods”>test,execute</param>

</interceptor-ref>
</action>
分享到:
评论

相关推荐

    Struts2详细工作流程

    Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件...Struts 2框架按照模块来划分,可以分为Servlet Filters、Struts核心模块、拦截器和用户实现部分。

    Struts2入门教程(全新完整版)

    一、准备工作及实例 3 1.解压struts-2.1.6-all.zip 3 2.六个基本包 3 3.初识struts2配置文件 4 ... 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图来看: 60

    struts快速入门的最好教程

    Struts2框架简介 Struts2历史 Struts2与MVC Struts2体系介绍 Struts2体系架构 ...Struts2拦截器 默认配置文件struts-default.xml概要说明 Struts2核心配置文件Struts.xml详解 Struts2的简单开发和配置

    济南大学 第03章_Struts2应用_课堂.ppt

    3.1 Struts 2概述 3.2 Struts 2基本应用及工作流程 3.3 Struts 2标签库应用 3.4 Struts 2拦截器 3.5 Struts 2国际化应用 3.6 Struts 2文件上传 3.7 Struts 2综合应用实例——添加学生信息

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    struts2课程笔记

    struts2知识点:处理流程,基本配置,与servlet的API解耦,结果类型,通配符和动态方法的调用,类型转换,文件上传,拦截器,表单验证,国际化,OGNL表达式,UI标签,模型驱动,防止表单重复提交,项目练习知识点:...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    18.3 使用DataSourceInjectorInterceptor拦截器 269 18.4 小结 273 第19章 定制结果类型 274 19.1 概述 274 19.2 编写一个自定义的结果类型 274 19.3 使用新的结果类型 277 19.4 小结 279 第20章 Velocity 280 ...

    《Java EE应用开发基础》第三章课件(PDF版)

    济南大学《Java EE应用开发基础》课程课件(PDF版),第三章Struts2应用 3.1 Struts 2概述 ...3.4 Struts 2拦截器 3.5 Struts 2国际化应用 3.6 Struts 2文件上传 3.7 Struts 2综合应用实例——添加学生信息

    低清版 大型门户网站是这样炼成的.pdf

    2.6.1 struts 2内建拦截器介绍 95 2.6.2 定义和使用拦截器栈 97 2.6.3 使用自定义拦截器 98 2.7 小结 100 第3章 struts 2标签库详解与ajax技术应用 103 3.1 struts 2主题与模板 103 3.2 struts 2控制标签详解 ...

    java从入门到精通70个PPT

    34 Struts 2深入 拦截器 35 Struts 2综合应用 36 类型转换和OGNL 37-40 项目案例:在线投票系统 41 jsp servlet struts总结 42 Hibernate 入门 43 Hibernate 关联映射 44 HQL实用技术 45 HQL高级 46 Criteria 查询 ...

    Java Web程序设计教程

    5.2.1struts2的工作流程 84 5.2.2struts2的简单应用 85 5.3struts2基础 87 5.3.1action详解 88 5.3.2结果与视图 91 5.3.3struts.xml的配置 94 5.4值栈与ognl表达式 100 5.5struts2的标签库 103 5.5.1控制...

    从J2SE到J2EE知识点介绍

    1. struts2的拦截器定义以及使用 153 2. struts标签 160 3. Struts 2 标签库说明及使用 160 4. set 描述 169 5. text 描述 170 6. property 描述 170 7. Struts的异常处理 171 8. Struts的上传与下载 178 五、 ...

    J2EE应用开发详解

    124 8.5.2 拦截器的实现原理 124 8.5.3 Struts2的内置拦截器 124 8.5.4 拦截器的配置和使用 125 8.5.5 自定义拦截器 126 8.6 一个简单的Struts2应用 130 8.7 小结 140 第9章 JSF 141 9.1 JSF技术简介 141 9.1.1 JSF...

    Spring in Action(第二版 中文高清版).part2

    11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI 12.1.2 注入JNDI对象 12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送...

    Spring in Action(第2版)中文版

    11.3.4使用注释声明拦截器 11.4小结 第12章访问企业服务 12.1从jndi中获取对象 12.1.1使用传统的jndi 12.1.2注入jndi对象 12.1.3在spring2中注入jndi对象 12.2发送电子邮件 12.2.1配置邮件发送器 12.2.2...

    Java学习笔记-个人整理的

    {1.9}流程控制}{31}{section.1.9} {1.9.1}\texttt {if\ldots esle\ldots }}{31}{subsection.1.9.1} {1.9.2}\texttt {switch}}{31}{subsection.1.9.2} {1.9.3}\texttt {while}}{32}{subsection.1.9.3} {1.9.4}\...

    Spring in Action(第二版 中文高清版).part1

    11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI 12.1.2 注入JNDI对象 12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送...

Global site tag (gtag.js) - Google Analytics