什么是Struts 2拦截器?

从软件构架上来说,拦截器是实现了面向方面编程的组件。它将影响了多个业务对象的公共行为封装到一个个可重用的模块,减少了系统的重复代码,实现功能的高度内聚,确保了业务对象的整洁和纯度。

从Java代码上来说,它就是一个普度的Java对象,它只需要实现一个名为Interceptor的接口。

Struts 2的工作原理又是什么呢?我们可以同两张图来看看

对于Stuts 2的执行原理我就不做过多的解释了,接下来我们就来看看怎么去具体实现吧。开始就说了,Struts 2的拦截器只是一个普度的java对象,只需要给它实现一个Interceptor接口即可。

需要注意的是:

实现Interceptor接口还要必须实现三个方法,如果学过Servlet应该就更能明白为什么要这样了。三个方法分别为:初始化拦init()、destroy()、最后呢就是我们需要去实现的拦截器方法intercept(),具体的实现功能上面已经有了。

拦截器功能是实现了,但是我们该怎么去让它跟Action类去关联呢?我们都知道拦截器最主要的就是去拦截Action的一些代码问题,返回出来的就是一个逻辑视图名,即被指明为放行的Action。

那我们可以先把之前的登录案列完善以便更好让Interceptor与Action更好关联。

看完这些,我们就来看看具体配置文件xml吧!既然说到xml文件,先说说Struts2xml配置文件几个重要的顺序吧。

对于xml配置文件中一些常量的设置,它是由上至下的顺序把之前的设置覆盖掉,也就是说谁是最后设置的,就以那个设置值为准,所以就有了我们接下来要设置拦截器栈会将默认的拦截器栈冲掉然后再重新去引导默认拦截器栈名为defaultStack

相信大家也能明白了一些了吧,最后顺便给大家拦截器的一些注意点知识吧。

最新文章

  1. 玩转Java对象和XML相互转换
  2. 关于c#生成word。
  3. jQuery取CSS的HEX(16位)颜色值
  4. poj 1466 Girls and Boys(二分匹配之最大独立集)
  5. Android使用NumberPicker控件实现选择城市,生日
  6. canvas阴影
  7. [转]SQL Server为啥使用了这么多内存?
  8. 尼姆博弈(Nimm's Game)
  9. Java多线程基础总结
  10. Object 类
  11. Tomcat和JDK的内存配置
  12. 防止系统锁屏-python、C++实现
  13. Linux下批量管理工具pssh安装和使用
  14. 吴恩达《机器学习》课程笔记——第六章:Matlab/Octave教程
  15. .net反编译的九款神器
  16. {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证
  17. Please add or free up more resources then turn off safe mode manually.
  18. 【12】python 栈型数据结构模拟、队列型数据结构模拟
  19. OD之去除nag弹窗(四)
  20. kubeadm init 时从本地私有仓库下载镜像

热门文章

  1. CentOS 安装Paramiko模块
  2. IDEA构建一个mybatis项目
  3. Mac php使用gd库出错 Call to undefined function imagettftext()
  4. git使用入门
  5. 大数据项目实践:基于hadoop+spark+mongodb+mysql+c#开发医院临床知识库系统
  6. 【leetcode】Pascal's Triangle
  7. RANSAC算法笔记
  8. JQuery的无缝滚动
  9. Spartan Exploit Kit分析
  10. Java IO 操作(一)