Struts2拦截器初步认识

来源:互联网 发布:数控车床内孔加工编程 编辑:程序博客网 时间:2024/05/22 15:28

刚刚接触struts2的拦截器,觉得确实是很强大!首先来初步了解下Struts2的拦截器:

 

  拦截器能够在一个Action执行前后拦截它。目前的很多框架的核心实现均是基于拦截器。(本人说两句,OOP因为拦截器而显得更为精彩,AOP必将

 

成为下一个核心关注点)。拦截器可以帮助实现很多公共的内容,其中有重复提交,类型转换,对象初始化,验证,文件上传,页面初始化等等。由于每

 

个拦截器都可以像热插拔的模块,你可以在你的Action中正确地去使用需要的拦截器。

 

我个人的理解,觉得Struts2的拦截器和Servlet里面的过滤器的机制一样,都是在方法执行的过程中处理拦截,但是Struts2的拦截器功能显然更强大

 

,而且灵活性也更好!如下是拦截器的一个简单的例子:

这是一个很简单的拦截器,该拦截器继承了AbstractInterceptor,AbstractInterceptor类对Interceptor的Init和destory方法实现了空实现,

 

所以继承AbstractInterceptor类只需要重写intercept()方法。

 

接着就是在struts.xml里面配置拦截器:

 

 

配置完拦截器后,就是在action里面引用该拦截器:

 

 

引用自定义的拦截器需要注意的是把struts2默认的拦截器也得加上,<interceptor-ref name="defaultStack"></interceptor-ref>

 

因为struts2里面如果配置了自定义的拦截器的话,那么默认的拦截器将不会自动运行,需要手动将其引用!

 

最后就是配置全局跳转:

 

 

到此,一个简单的拦截器就配置完成!