欢迎来到天天文库
浏览记录
ID:15210584
大小:68.00 KB
页数:8页
时间:2018-08-02
《struts2的拦截器_小例子》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Struts2的拦截器小例子2008-11-0710:38Struts2的拦截器Struts2的拦截器体系是一种AOP设计哲学。Strut2的拦截器可以动态地拦截发送到指定Action的请求,通过拦截器机制,可以在Action执行前后插入某些代码,通过这种方式可以把多个Action中需要重复指定的代码提取出来,在拦截器中定义,从而提供更好的代码重用。拦截器体系是Struts2的一个重要组成部分,Struts2框架就是由大量的内置拦截器来实现的。另外,它是即插即用的,即当我们需要使用某个拦截器时,只需要在配置文件中应用中该拦截器即可,如果不需要使用拦截器,也只需要取消在配置文件中该拦截器,
2、不管是否应用某个拦截器,对于整个Strut2框架不会有任何影响的。Struts框架提供了很多拦截器,它实现Struts2的大部分功能,能满意大部分应用的能用功能,但要实现系统逻辑相关的功能时,需要使用用户自定义拦截器:如果用户要开发自己的拦截类,需要实现Interceptor接口,它包括三个方法:Init()destroy()intercept(ActionInvocationaction)一般来说只需要实现最后一个方法即可,所以Struts2提供了一个AbstractInterceptor类,它提供了init和destory方法的空实现。在实际的开发中时,只需要继承AbstractIn
3、terceptor来实现自定义拦截器。下面实现一个简单的拦截器:实现拦截器类(SimpleInterceptor.java):packagemy;importjava.util.Date;importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;importcom.opensymphony.xwork2.ActionInvocation;publicclassSimpleInterceptorextendsAbstractInterceptor{privateStringname;publicvoidsetName(Str
4、ingname){this.name=name;}publicStringintercept(ActionInvocationinvocation)throwsException{LoginActionaction=(LoginAction)invocation.getAction();System.out.println(name+"拦截器的动作:开始执行登录Action的时间为:"+newDate());if(action.getTip().equals("flying")){System.out.println("usernameerror");return"input";}lon
5、gstart=System.currentTimeMillis();Stringresult=invocation.invoke();System.out.println(name+"拦截器的动作:执行完登录Action的时间为:"+newDate());longend=System.currentTimeMillis();System.out.println("拦截器的动作:执行action事件的时间是:"+(end-start)+"毫秒");returnresult;}}配置拦截器(Struts.xml):
6、OCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd">simple
7、/login.jsp/success.jsp
此文档下载收益归作者所有