刚刚接触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里面如果配置了自定义的拦截器的话,那么默认的拦截器将不会自动运行,需要手动将其引用!
最后就是配置全局跳转:
到此,一个简单的拦截器就配置完成!