对于初学架构的 [color=red]“小白”[/color]来讲,拦截器绝对是一把需要掌握的[color=red]“利器”[/color]。那么自己从以下几个方面,谈谈对拦截器的小小思考。
拦截器的方法在Action执行前或执行后自动执行,从而将通用的操作动态地插入到Action执行的前后,这样的目的是利于系统的耦合。
拦截器的[color=red][b]实现原理[/b][/color]和 [color=red]Servlet[/color] 过滤器的实现原理一样,以链式方式执行,对真正想要执行的方法(这里指action类的execute())进行拦截。 [color=red] 首先[/color]执行action配置的拦截器,[color=red]其次[/color],在action类中的execute()被执行后,拦截器再次被执行。
拦截器的工作方式如下图所示:
[img]http://dl2.iteye.com/upload/attachment/0109/9416/2ac7f18c-115e-3e9b-a7e0-b589acb3b81e.png[/img]
拦截器的使用步骤:
1.在Struts.xml配置文件定义一个拦截器,只需要使用<interceptor>元素指定拦截器类与拦截明。[color=red]语法格式为:[/color]
<interceptors>
<interceptor name="InterceptorName" class="InterceptorClass"/>
</interceptors>
2.使用拦截器,完成配置后,就可以用该拦截器拦截Action提交的申请了,拦截行为将会在执行Action中的execute()方法之前触发。在Action中使用触发器的配置语法是设置<interceptor-ref>[color=red]语法格式为:[/color]
<interceptor-ref name="InterceptorName"></interceptor-ref>
3.实现拦截器类,[color=red]语法格式为:[/color]
public class 拦截器名称 extends AbstractInterceptor{
//intercept该方法实现拦截的动作
//拦截器继承AbstractInterceptor类,来实现
public String intercept(ActionInvocation arg0) throws Exception {
System.out.println("拦截器开始运行....");
String resultString=arg0.invoke();
System.out.println("拦截器已经结束....");
return resultString;
}
}
对于拦截器“小白”的我,了解的很少,希望大家凑合看吧! :D :D ,同时,自己写博客的目的在于:在写作中升华理解,渐渐告别“小白”,嘿嘿!!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)