5.Struts2中的拦截器
拦截器是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中的拦截器的更多相关文章
- 十五、struts2中的拦截器(框架功能核心)
十五.struts2中的拦截器(框架功能核心) 1.过滤器VS拦截器 功能是一回事. 过滤器是Servlet规范中的技术,可以对请求和响应进行过滤. 拦截器是Struts2框架中的技术,实现AOP(面 ...
- struts2中的拦截器
一 AOP思想: 面向切面编程的思想 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP ...
- struts2 中 paramsPrepareParamsStack 拦截器
struts2二次参数拦截器内容: 规定了请求的执行顺序 在struts2中,其拦截器为框架精华部分,而二次参数拦截器paramsPrepareParamsStack 对于解决数据回显,对象修改属性 ...
- Struts2中的拦截器详解
exception:异常拦截器,拦截异常aliasservletConfig18nprepare:预备拦截器,这个拦截器就是为了ModelDriven准备对象的,若Action类实现了preparab ...
- struts2中方法拦截器(Interceptor)的中的excludeMethods与includeMethods的理解
http://www.cnblogs.com/langtianya/archive/2013/04/10/3012205.html
- Struts2的核心——拦截器
虽然以前已经学了很多的拦截器,但是在这里还是想重头梳理一下所有有关拦截器的知识,尤其是struts2中的拦截器 1:拦截器是什么? java里的拦截器是动态拦截Action调用的对象.它提供了一种机制 ...
- java struts2入门学习---拦截器学习
一.拦截器,拦截器栈 1.拦截器的作用 拦截器本质上和servlet的过滤器是一样的.在struts2中,拦截器能够对Action前后进行拦截,拦截器是一个可插拨的,你可以选择使用拦截器,也可以卸载拦 ...
- struts2学习笔记--拦截器(Interceptor)和登录权限验证Demo
理解 Interceptor拦截器类似于我们学过的过滤器,是可以在action执行前后执行的代码.是我们做web开发是经常使用的技术,比如权限控制,日志.我们也可以把多个interceptor连在一起 ...
- Struts2(十四)拦截器实现权限管理
一.认识拦截器 拦截器也是一个类 拦截器可以在Action被调用之前和之后执行代码 框架很多核心功能是拦截器实现的 拦截器的特点: 拦截器自由组合,增强了灵活性.扩展性.有利于系统解耦 拦截器可以拦截 ...
随机推荐
- 主席树入门(区间第k大)
主席树入门 时隔5个月,我又来填主席树的坑了,现在才发现学算法真的要懂了之后,再自己调试,慢慢写出来,如果不懂,就只会按照代码敲,是不会有任何提升的,都不如不照着敲. 所以搞算法一定要弄清原理,和代码 ...
- boost timer 定时器 Operation cancel !
前面段时间处理一个定时器时,老是提示 操作取消. 硬是没搞明白为什么! 其实我遇到的这个情况很简单就是(boost::asio::deadline_timer timer)这个变量的生命同期结束了,对 ...
- Blink Without Delay: 不使用 delay() 函数而使 LED 闪烁
不使用 delay() 函数而使 LED 闪烁 有些时候你需要同时做两件事.例如,你可能希望在读取按键按下状态同时让LED闪烁. 在这种情况下,你不能使用 delay(),因为Arduino程序会在d ...
- Ubuntu14.04安装搜狗拼音输入法
删除ibus输入法 sudo apt-get purge ibus sudo apt-get autoremove 安装fcitx和拼音输入法 sudo apt-get install fcitx f ...
- 魅蓝note2在ubuntu14.04下mtp模式无法自动mount的解决方法
是因为新机型没在列表里的原因. 处理方法如下: As far as I know, MTP works fine in Trusty. You can try this: Uncomment #use ...
- Linux学习三:Ubuntu下使用minicom和开发板通信
备注:如果你是用的是Windows则使用超级终端即可:开始-程序-附件-通讯-超级终端 现在我们在Ubuntu下安装配置minicom: 1.进入ubuntu桌面ctrl+alt+t打开终端 输入:s ...
- 2.2 ARM处理器工作模式
ARM Architecture Reference Manual Arm 指令框架手册 种工作模式 Processor mode Mode number Description User usr 0 ...
- 慕课网-Java入门第一季-7-1 如何定义 Java 中的方法
来源:http://www.imooc.com/code/1577 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 一般情况下,定义一个方法的语法是: 其中: 1. 访问修饰符:方法 ...
- Loadrunner---解决乱码问题
在使用Loadrunner录制和回放时有时候会因为乱码问题报错,且让我们很难定位出脚本问题所在.此事我们做一下分析loadrunner为什么会出现乱码这种情况呢? 1.乱码产生的原因 1)loadru ...
- jQuery Validate + Ckeditor 驗證 textarea 解決方式
jQuery Validate + Ckeditor 驗證 textarea 解決方式 html <textarea name="content" id="cont ...