Struts2基础(4)

来源:互联网 发布:windows photo viewer 编辑:程序博客网 时间:2024/06/05 16:46
Struts2拦截器和标签库
1. 拦截器概述
(1) Struts2中封装的功能都是在拦截器中实现的
(2) Struts2中封装了很多功能,有很多拦截器,但是每次只执行默认的拦截器
(3) Struts2里默认拦截器的位置
struts2-core-2.3.24.jar
struts-default.xml
(4) 什么时候执行
在Action对象创建之后,方法执行之前执行

2. 拦截器底层原理
(1)AOP思想
面向切面编程,有基本功能,需要扩展功能,不通过修改源代码的方式扩展功能
(2)责任链模式
要执行多个操作,有添加,修改,删除
首先执行添加操作,之后做类似于“放行”操作,执行修改操作,再执行“放行”操作,之后执行删除操作
(3) 如何应用
在Action方法执行之前执行默认拦截器,执行过程使用AOP思想,在Action中没有直接调用拦截器的方法,而是使用配置文件的方式进行操作
在执行拦截器时,会执行很多拦截器,这个过程中使用责任链模式
(4) 执行过程

3. 拦截器和过滤器的区别
(1)过滤器理论上可以是任意内容,比如:hml、jsp、servlet、图片等
(2)拦截器只可以拦截Action

4. 自定义登录拦截器
1. 拦截器结构
继承AbstractInterceptor、实现Interceptor接口
有三个方法:
(1)init():初始化操作
(2)destory():销毁
(3)interceptor():拦截操作
2. 开发中使用另一种方法
写类继承MethodFilterInterceptor类实现,可以让Action中的某个方法不被拦截,
需要通过配置文件的方式建立关系
(1)在要拦截的Action标签所在的Package标签里声明拦截器
<inteceptors>
<interceptor name="" class="">
</inteceptors>
(2)在具体的Action标签里使用声明的拦截器
<action>
<interceptor-ref name=""></interceptor-ref>
</action>
(3)如果配置了自定义的拦截器,Struts2中默认的拦截器就不会执行了
解决:
<interceptor-ref name="defaultStack"></interceptor-ref>
(4)可以通过配置的方式对Action的某些方法不进行拦截
<interceptor-ref name="">
<param name="excludeMethods">login,......</param>
</interceptor-ref>

5. Struts2标签库
Struts2标签使用在JSP中
1. s:property:和OGNL表达式在JSP页面中获取值栈数据
2. s:iterator:获取值栈List集合数据,表示List集合
3. s:debug:查看值栈结构和数据

6. Struts2表单标签
1. s:form
2. s:textfield name label
3. s:radio list
4. s:checkboxlist
5. s:select
6. s:file
7. s:hidden
8. s:submit
9: s:reset
10. s:textarea

原创粉丝点击