struts2(四)
来源:互联网 发布:淘宝15万贷款技术 编辑:程序博客网 时间:2024/06/01 09:05
拦截器(interceptor):struts2是框架,封装了很多功能,而struts2封装的功能都在拦截器里面,struts2有很多拦截器,但不是每个都执行,每次只执行默认的一部分。
拦截器什么时候执行:在action对象创建之后,action的方法执行之前。
拦截器的底层原理:
(一):aop思想:面向切面编程,通俗的说就是不修改源代码的情况下扩展功能。底层是动态代理。
(二):责任链模式,java中的设计模式当中的一种。责任链和过滤链很相似,过滤链:一个请求可以有多个过滤器进行过滤,每个过滤器只有做放行才能到下个过滤器。
责任链模式:要一次性进行多个操作,例如:添加,修改,删除。首先进行添加,添加执行之后做类似放行的操作,再进行修改操作,修改之后再做类似放行的操作再做删除操作。
aop思想和责任链模式如何应用到拦截器:拦截器在action对象创建之后,action中的方法执行之前执行,在action方法执行之前执行默认拦截器,使用aop思想,在action中没有直接调用拦截器的方法,而是使用配置文件进行操作。
在执行拦截器的时候,执行很多拦截器,这时候使用了责任联模式,就是说假如执行三个拦截器,执行拦截器1,放行,再执行拦截器2,放行,再执行拦截器3,放行,再执行action中的方法。
过滤器和拦截器的区别:
(过滤器):理论上可以过滤任意内容。
(拦截器):拦截器只会拦截action。
自定义拦截器:
拦截器结构:查看源代码之后发现,例如modeldriven这个拦截器,它首先继承一个类,它的父类实现了一个接口。
class ModelDrivenInterceptor extends AbstractInterceptor
class AbstractInterceptor implements Interceptor
在接口里有三个方法,init,destroy,intercept:拦截逻辑的操作。
在开发中一般使用写一个类继承MethodFilterInterceptor,它可以让action里面的某个方法不进行拦截。
让拦截器和action有关系,使用配置文件方式,而不是在action中调用拦截器的方法。
拦截器什么时候执行:在action对象创建之后,action的方法执行之前。
拦截器的底层原理:
(一):aop思想:面向切面编程,通俗的说就是不修改源代码的情况下扩展功能。底层是动态代理。
(二):责任链模式,java中的设计模式当中的一种。责任链和过滤链很相似,过滤链:一个请求可以有多个过滤器进行过滤,每个过滤器只有做放行才能到下个过滤器。
责任链模式:要一次性进行多个操作,例如:添加,修改,删除。首先进行添加,添加执行之后做类似放行的操作,再进行修改操作,修改之后再做类似放行的操作再做删除操作。
aop思想和责任链模式如何应用到拦截器:拦截器在action对象创建之后,action中的方法执行之前执行,在action方法执行之前执行默认拦截器,使用aop思想,在action中没有直接调用拦截器的方法,而是使用配置文件进行操作。
在执行拦截器的时候,执行很多拦截器,这时候使用了责任联模式,就是说假如执行三个拦截器,执行拦截器1,放行,再执行拦截器2,放行,再执行拦截器3,放行,再执行action中的方法。
过滤器和拦截器的区别:
(过滤器):理论上可以过滤任意内容。
(拦截器):拦截器只会拦截action。
自定义拦截器:
拦截器结构:查看源代码之后发现,例如modeldriven这个拦截器,它首先继承一个类,它的父类实现了一个接口。
class ModelDrivenInterceptor extends AbstractInterceptor
class AbstractInterceptor implements Interceptor
在接口里有三个方法,init,destroy,intercept:拦截逻辑的操作。
在开发中一般使用写一个类继承MethodFilterInterceptor,它可以让action里面的某个方法不进行拦截。
让拦截器和action有关系,使用配置文件方式,而不是在action中调用拦截器的方法。
阅读全文
0 0
- struts2从零开始(四)
- struts2国际化(四)
- Struts2笔记(四)
- Struts2框架(四)
- Struts2框架(四)
- Struts2核心技术(四)
- Java Struts2 (四)
- Struts2(四)ONGL
- Java Struts2 (四)
- Java Struts2 (四)
- Java Struts2 (四)
- struts2(四)
- Struts2核心技术(四)
- Struts2.1笔记(四):深入Struts2
- struts2学习笔记(四)
- struts2源码浅析(四)
- Struts2学习笔记(四)
- Struts2(四)文件上传
- bootstrap之scaffolding&tables样式
- 阿里数据库DevOps最佳实践
- [Leetcode] 424. Longest Repeating Character Replacement 解题报告
- Android 片段——Fragment的使用
- mysql unionall的一种使用方法
- struts2(四)
- ubuntu 下更新 GPU 驱动
- MFC中用c++语言实现获取文件路径(拖拽获取)
- 指针函数和函数指针
- js禁止右键和f12
- 踏踏实实的学习
- 有道云笔记高级语法
- YUV格式
- 汇总站外seo方法和做法?