首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

7.struts2核心-拦截器(interceptor)

2012-08-25 
7.struts2核心---拦截器(interceptor)interceptor(拦截器)作为struts2的核心内容,struts2的大部分功能都是

7.struts2核心---拦截器(interceptor)
interceptor(拦截器)作为struts2的核心内容,struts2的大部分功能都是靠拦截器来实现的,如:校验,国际化,类型转换。。。

1.拦截器的概念

拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。

在Webwork的中文文档的解释为——拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。

说到拦截器,不得不提下过滤器,其两者原理非常相似,在过滤器里面有过滤器链这个说法,而在Struts 2中称为拦截器栈Interceptor Stack。拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。

2.拦截器的实现原理

当请求到达Struts 2的ServletDispatcher时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器,这个和过滤器原理相似,从下面的图中可以很容易理解其工作方式。



3.struts2自带的拦截器

struts2默认提供了十分丰富的拦截器,大家可以在struts2-core-2.3.1.2.jar包中的struts-default.xml查看关于默认的拦截器与拦截器链的配置。



4.拦截器的配置

既然struts2自带了这么多拦截器,那么我们该怎么使用呢?下面我将给大家介绍自带拦截器的使用。



5.自定义拦截器的实现

大家用着用着可能发现使用自带的太局限了,struts2当然也早就考虑到这个问题,所以人家就利用那句话---“约定大于配置”,给你一个约定,你可以按照约定自己编写自己想要的拦截器,下面就给大家介绍该如何编写一个自己的拦截器。



好了,对于struts2的拦截器就说到这里,下一篇将给大家说一下struts2的文件上传。

热点排行