拦截器是Struts2中的核心,其自带很多很多的拦截器,这里主要介绍一下自定义拦截器,恩多一半情况下呢?我们不需要使用到自定义的拦截器,Struts2本身已经提

供了很多的拦截器供我们使用,对于自定义拦截器的学习,有利于我们理解Struts2中的拦截器机制。

  Struts2的很多功能都是基于拦截器的,比如:传参,国际化,文件的上传下载。

  拦截器栈:将多个拦截器按照顺序链接,相当于一条拦截器的链,会按照顺序执行。

  Struts中所以的拦截器都必须实现一个Interceptor接口,Extends AbstractInterceptor(是Interceptor接口的空白实现)

  自定义拦截器:

    1.实现Interceptor接口

public class Interceptor1 implements Interceptor{
public Interceptor1(){ //构造函数
System.out.println("小法被生出来了");
}
@Override
public void init() {
// TODO Auto-generated method stub
System.out.println("先学习q技能,出多兰戒");
}
@Override
public String intercept(ActionInvocation arg0) throws Exception {
System.out.println("怒送一血");
//arg0.invoke();//继续往下执行
return "login";
}
@Override
public void destroy() {
//并没有看到被销毁的过程
System.out.println("塔下强杀,game GG");
}
}

    2.在Struts2的配置文件中配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="hello" extends="struts-default" namespace="/">
<interceptors>
<!-- 定义拦截器 -->
<interceptor name="fa" class="com.etc.interceptor.Interceptor1"></interceptor>
<interceptor name="fa2" class="com.etc.interceptor.Interceptor2"></interceptor>
</interceptors>
<action name="in" class="com.etc.action.InterceptorAction">
<!-- 在需要拦截的地方引用拦截器 -->
<interceptor-ref name="fa"></interceptor-ref>
<interceptor-ref name="fa2"></interceptor-ref>
<result name="success">/index.jsp</result>
<result name="login">/login.jsp</result>
</action>
</package>
</struts>

   在这里大家会看到拦截器的很重要的概念,叫做生命周期

    实例化(一开始运行的时候)

    初始化(一开始运行的时候)

    拦截(当你访问你要拦截的地址的时候)

    销毁

  这里需要注意的地方就是:当你配置多个拦截器的时候,拦截器会依次进行拦截,但是有个前提条件

    就是你在前面的拦截器中需要调用到invoce()方法,该方法会通知下面的拦截器继续拦截,不调用该方法的话,以下的拦截器不会拦截

5.Struts2中的拦截器的更多相关文章

  1. 十五、struts2中的拦截器(框架功能核心)

    十五.struts2中的拦截器(框架功能核心) 1.过滤器VS拦截器 功能是一回事. 过滤器是Servlet规范中的技术,可以对请求和响应进行过滤. 拦截器是Struts2框架中的技术,实现AOP(面 ...

  2. struts2中的拦截器

    一  AOP思想: 面向切面编程的思想 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP ...

  3. struts2 中 paramsPrepareParamsStack 拦截器

    struts2二次参数拦截器内容: 规定了请求的执行顺序 在struts2中,其拦截器为框架精华部分,而二次参数拦截器paramsPrepareParamsStack  对于解决数据回显,对象修改属性 ...

  4. Struts2中的拦截器详解

    exception:异常拦截器,拦截异常aliasservletConfig18nprepare:预备拦截器,这个拦截器就是为了ModelDriven准备对象的,若Action类实现了preparab ...

  5. struts2中方法拦截器(Interceptor)的中的excludeMethods与includeMethods的理解

    http://www.cnblogs.com/langtianya/archive/2013/04/10/3012205.html

  6. Struts2的核心——拦截器

    虽然以前已经学了很多的拦截器,但是在这里还是想重头梳理一下所有有关拦截器的知识,尤其是struts2中的拦截器 1:拦截器是什么? java里的拦截器是动态拦截Action调用的对象.它提供了一种机制 ...

  7. java struts2入门学习---拦截器学习

    一.拦截器,拦截器栈 1.拦截器的作用 拦截器本质上和servlet的过滤器是一样的.在struts2中,拦截器能够对Action前后进行拦截,拦截器是一个可插拨的,你可以选择使用拦截器,也可以卸载拦 ...

  8. struts2学习笔记--拦截器(Interceptor)和登录权限验证Demo

    理解 Interceptor拦截器类似于我们学过的过滤器,是可以在action执行前后执行的代码.是我们做web开发是经常使用的技术,比如权限控制,日志.我们也可以把多个interceptor连在一起 ...

  9. Struts2(十四)拦截器实现权限管理

    一.认识拦截器 拦截器也是一个类 拦截器可以在Action被调用之前和之后执行代码 框架很多核心功能是拦截器实现的 拦截器的特点: 拦截器自由组合,增强了灵活性.扩展性.有利于系统解耦 拦截器可以拦截 ...

随机推荐

  1. Linux文件权限概念

    一.Linux文件属性 1.第一列代表这个文件的类型与权限(permission): 共有10个字符 第一个字符代表这个文件的类型,是"目录,文件或链接文件等": [d]----& ...

  2. linux_oracle_healthcheck.sh

    #!/bin/bash######################################################################################### ...

  3. [POJ2096] Collecting Bugs (概率dp)

    题目链接:http://poj.org/problem?id=2096 题目大意:有n种bug,有s个子系统.每天能够发现一个bug,属于一个种类并且属于一个子系统.问你每一种bug和每一个子系统都发 ...

  4. scichart by Kline

    <UserControl x:Class="Abt.Controls.SciChart.Example.Examples.IWantTo.CreateMultiseriesChart. ...

  5. 通过seekBar改变图片的透明度

    作者:堕落的天使 对应的图片 activity_main.xml(代码) <RelativeLayout xmlns:android="http://schemas.android.c ...

  6. Django RedirectView

    RedirectView作用是重定向一个指定,给定的Url.这个给定的Url可能包含有字典风格的字符串,因为关键字(词)会被改变,所以从这个Url中捕获的参数可能也会被修改,例如,Url中的“%”应该 ...

  7. Druid 基础使用-操作篇(Pivot、plyql)

    一.Pivot  --9095 端口  二.基本sql 使用 .plysql--   http://plywood.imply.io/plyql  (下面的端口应该是8082,我这个地方做了端口转换) ...

  8. mvc ajax csrf

    http://www.cnblogs.com/zhyp/p/5556980.html http://www.asp.net/web-api/overview/security/preventing-c ...

  9. Java温故系列之web项目复习

    如果从外面导入项目 操作方法为: File->Import -->General-->Existing Project into Workspace 搭建sqlserver数据库连接 ...

  10. 通过Nginx+tomcat+redis实现反向代理 、负载均衡及session同步

    一直对于负载均衡比较陌生,今天尝试着去了解了一下,并做了一个小的实验,对于这个概念有一些认识,在此做一个简单的总结 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称 ...