- 8
- 0
- 约2.35万字
- 约 21页
- 2016-12-03 发布于贵州
- 举报
Strut2的拦截器
Struts2的拦截器
拦截器的初步知识
拦截器在Struts2框架中具有重要的作用,是整个Struts2框架的核心和基础。Struts2中的大多数操作,比如类型转换、国际化、输入效验等,都要用到拦截器。那么拦截器究竟是什么?为什么它的作用会这么大?它是如何工作的?本章我们将会解答这些问题。
什么是拦截器
对于拦截器的概念,官方给出的定义是:拦截器是动态拦截Action调用的对象。它提供了一种机制,使开发者可以定义一段代码,在Action执行之前或者之后被调用执行,也可以在一个Action执行前阻止执行,同时也提供了一种可以提取Action中科重用部分的方式。通俗一点来说,拦截器是一个实现了一定功能的类,它以一种课插拔的方式(所谓可插拔就是指增加和减少某个功能的时候,不会影响到其他功能的实现),被定义在某个Action执行之前或者之后,用来完成特定的功能。
比如在Strts2工程中我们设计了一个Action来实现某个功能,在没有使用拦截器的时候,该Action的执行流程可能如图2-1所示。
图2-1 Action的执行流程
当明天需要为这个Action添加一些功能,比如日志、安全等,我们就可以使用拦截器来实现了。如图4-2所示。
图2-2 添加拦截器
实现日志功能和安全功能的拦截器,以课插拔的方式添加到Action执行过程中以后,整个执行流程就变为:执行日志功能、安全检测功能、执行Action工作、执行安全检测、记录日志功能。
拦截器的设计机制
从根本上来说,拦截器的设计师为了更好地实现代码复用。
对于上面的例子,日志和安全功能在一个工程中可能会用在很多地方。当然我们不用拦截器也能实现添加功能的操作。比如可以在每个需要的Action中都添加日志和安全的代码,或者写好一个实现日志、安全功能的类,让Action来继承这个类。但是这两种方法都不是最好的选择。在每个Action中都加入日志和安全的代码,势必会造成工程的臃肿庞大,使后期维护和修改变得极为困难。继承的方式可以在一定程度上减少代码量,代码的课维护性也相应得到提高,但是灵活性较差。当为Action增加或者减少某个功能的时候,还需要改动很多的代码,而采用拦截器的方式就不存在以上所提及的弊端。我们知道拦截器也是一个类,将需要的功能封装到这个类中,当为Action添加功能的时候就配置该拦截器;当为Action减少功能的时候就取消配置拦截器。通过这种方法,在Action所需要功能发生变化的时候,我们只要修改拦截器的配置就能轻松实现。下面我们就来看看在Struts2中如何使用拦截器。
如何使用拦截器
在Struts2框架中配置和应用拦截器是一件非常简单的事情,只需在struts.xml文件中添加或者删除拦截器的配置信息即可,完全不用担心个别拦截器的改动会破坏其他部分的功能。
Struts2内置拦截器的介绍
对于一些Struts2框架的核心和高级特性,Struts2已经为我们这边了很多内置的拦截器可以使用,我们可以在Struts 2核心包中的struts-default.xml文件中找到它们。Struts2内置拦截器的具体内容,以及它们所实现的功能如表2-1所示。
表2-1 Struts 2内置拦截器及其功能描述
拦截器名称 功能描述 alias 对不同请求中的相同参数进行命名转换 autowiring 框架自动寻找相应的Bean并完成设置工作 chain 构建Action链,当使用result type=”chain”进行配置时,当前Action可使用前一个已经执行结束的Action属性,实现Action链之间的数据传输 checkbox 负责检查checkbox表单控件是否被选中,当checkbox未被选中时提交一个默认的值(通常是false) cookie 把带有特定名/值映射关系的cookie注射到Action中 conversionError 处理类型转换时的错误信息。把ActionContext中的错误信息转换为相应的Action字段的错误信息并保存,需要时可统计视图显示相关错误信息 createSession 自动创建一个HttpSession对象,因为有些拦截器必须要有HttpSession对象才能正常工作(比如TokenInterceptor) debugging 负责调试,当页面中使用s:debug标签时,课后的值栈、上下文等信息 execAndWait 在后台执行Action,并将等待画面传送给用户 exception 提供处理异常功能,将异常映射为结果 fileUpload 负责文件上传 I18n 把指定Locale信息放入Session logger 输出Action名称 sto
您可能关注的文档
最近下载
- 广东省深圳市深圳实验学校等校联考2024-2025学年九年级下学期开学考试语文试题(含答案).docx VIP
- 急性心梗转运流程图解.pptx
- 2025年房地产经纪人房地产市场特点综合案例分析专题试卷及解析.pdf VIP
- 党员领导干部2025年度民主生活会对照检查材料范文.docx VIP
- 2025年演出经纪人保护未成年人艺人的特殊义务与权利专题试卷及解析.pdf VIP
- ALINCO DR-635中文操作手册.pdf
- 2025年AWS认证Fargate网络隔离与安全组精细化配置专题试卷及解析.pdf VIP
- 2025年房地产经纪人市场比较法与其他估价方法(收益法、成本法)的混合应用专题试卷及解析.pdf VIP
- 2025年项目管理专业进度绩效指数在应对“黑天鹅”事件中的弹性分析专题试卷及解析.pdf VIP
- 【高考数学】2025年高考数学二级结论篇(核心知识背记手册).pdf
原创力文档

文档评论(0)