IT胖纸

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

一、Struts2中的拦截器

    拦截器是Struts2中的核心组件,Struts2中的绝大部分功能是通过拦截器完成的,所以Struts2的许多功能都是建立在拦截器的基础上的。

      拦截器实现了面向切面编程(AOP)的设计思想,拦截是AOP的一种实现策略。

      拦截器的使用方法:当需要使用某一个拦截器时,只需再配置文件中Struts.XML中配置即可。struts2的拦截器可以理解为一种可插拔式的设计思想,所以Struts2框架具有非常好的可扩展性。

      拦截器是Struts2中比较强大的特性,拦截器可以在Action和result被执行之前或之后进行一些处理,同时,拦截器也可以将通用的代码模块化并转换为可重用的类。例如params拦截器是将Http请求中的参数解析出来,并设置为Action的属性。Servlet-Config拦截器直接将HttpServletRequest对象和HttpServletResponse对象传递到Action中。

        拦截器运行如下图所示:

        

 

二、Struts2中的自定义拦截器

     自定义拦截器需要实现Struts2提供的Interceptor接口,通过实现该接口可以开发拦截器类。

      如果使用自定义拦截器的话有两种方法:

      一、实现Interceptor接口

      二、继承abstractInterceptor抽象类(注:其实abstractInterceptor抽象类就是实现了Interceptor接口

      无论是实现InterCeptor接口还是继承AbstractInterceptor抽象类都需要实现里面的方法一共需要继承或者实现的三个方法是Init()、Destory()、Intercept(actionInvocation Invocation)方法。

      其中:Init()方法:由拦截器在执行之前调用,主要是用于初始化系统资源。

            destory()方法:与Init方法相对应,用于在拦截器执行完之后释放Init()方法中打开的资源。

            Intercept(actionInvocation Invocation)方法:该方法是拦截器的核心方法,实现具体的拦截操作,返回一个字符串作为逻辑视图。

 

具体拦截器的原理以及基本知识可以参见http://www.cnblogs.com/kay/archive/2009/09/15/1566805.html比较通俗易懂

      

            

       

     

posted on 2016-04-27 16:19  IT胖纸  阅读(237)  评论(0)    收藏  举报