什么是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
相信大家也能明白了一些了吧,最后顺便给大家拦截器的一些注意点知识吧。