1.拦截器概述
概念: struts2
是框架,封装了很多的功能,struts2
里面封装的功能都是在拦截器里面,struts2
有很多拦截器,但不是每次都执行,每次只执行默认的拦截器。
拦截器的执行时间: 在action
对象创建之后,action
的方法执行之前。
2.拦截器底层原理
aop思想: Aop
是面向切面(方面)编程,有基本功能,扩展功能,不通过修改源代码方式扩展功能
责任链模式:
- 在
java
中用很多设计模式,责任链是其中一种。 - 1: 责任链和过滤链很相似
- 过滤链:一个请求可有多个过滤器进行过滤,每个过滤器只有做放行才能到下一个过滤器.
- 责任链:要执行多个操作,如添加,删除,修改三个操作,
- 做完一个操作后会放行,在执行下一个操作,一直到最后一个操作。
- 2:
aop
思想和责任链模式如何应用到拦截器里面?- 在
action
方法执行之前执行默认拦截器,执行过程使用aop
思想,在action
没有直接调用拦截器的方法,使用配置文件方式进行操作 - 在执行拦截器时候,执行很多的拦截器,这个过程使用责任链模式
- 假如执行三个拦截器,执行拦截器1,执行拦截器1之后做放行操作,执行拦截器2,执行拦截器2之后做放行,执行拦截器3,执行拦截器3之后放行,执行action 的方法
- 在
3.过滤器和拦截器的区别
- 过滤器: 过滤器理论上可以任意内容,比如
html
、jsp
、servlet
、图片路径。 - 拦截器: 拦截器只可以拦截
action
4.自定义登陆拦截器
- 1: 在
struts2
里面有很多的拦截器,这些拦截器是struts2
封装的功能,但是在实际开发中,struts2
里面的拦截器中可以没有要使用的功能,这个时候需要自己写拦截器实现功能 - 2: 拦截器结构源码介绍
class ModelDrivenInterceptor extends AbstractInterceptor
class AbstractInterceptor implements Interceptor
:接口里面三个方法void init()
:初始化方法。void destroy()
:销毁。String intercept(ActionInvocation invocation)
:拦截逻辑操作。
- 开发中建议使用另一种方法
- 写类,继承
MethodFilterInterceptor
类实现 - 让
action
里面某个的方法不进行拦截
- 写类,继承
- 让拦截器和
action
有关系- 不是在
action
调用拦截器的方法,而是通过配置文件方式让建立关系
- 不是在
5.struts2标签库(jsp)
s:property
:和ognl
表达式在jsp
页面中获取值栈数据s:iteratior
:获取值栈list
集合数据,表示list
集合s:debug
:查看值栈结构和数据
6.struts2表单标签
html表单标签:
form : action、 method、enctype
- 大部分在input里面封装 type=”值”
text
:普通输入项password
:密码输入项radio
:单选输入项checkbox
:复选输入项file
:文件上传项hidden
:隐藏项button
:普通按钮submit
:提交按钮image
:图片提交reset
:重置select
:下拉输入项textarea
:文本域
- 在
struts2
里面对应html
表单标签大部分都有
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END