struts2-拦截器的创建方式

一.拦截器的创建方式

  1.实现Interceptor接口;

    >实现该接口后,需要重写三个方法,分别是init(),intercept(ActionInvocation nvocation),destroy();

    >一般来说有生命周期方法的类,生命周期都不会太短,拦截器的生命周期随项目创建而创建,项目结束而摧毁;

    >如果不需要进行初始化和结尾处理时,实现该接口就要点没必要了,所以不推荐该方式

  2.继承抽象类AbstractInterceptor;

    >继承后,需要重写一个方法即可:intercept(ActionInvocation nvocation),该类还是比较体贴的,帮你处理掉了两个生命周期方法;

    >可以使用,但是方式三更好点

  3.继承MethodFilterInterceptor;

    >继承后,需要实现一个方法:doIntercept(ActionInvocation invocation),对要拦截的请求将执行的方法;

    >intercept方法很像servlet时的service方法,会对请求进行判断;这里的话intercept封装了对请求是否拦截的代码,若拦截的话会调用doIntercept;依次类推doIntercept()对应doGet和doPost

    >功能上:可以定制拦截器需要拦截的方法和不拦截的方法

    >doIntercept(ActionInvocation invocation)的参数有一个方法invocation.invoke(),表示放行,执行下一个拦截器

    >如果在doIntercept里没有放行方法,直接返回一个字符串的话,流程将流向result类来处理转发或重定向等到指定的页面。

原文地址:https://www.cnblogs.com/ibcdwx/p/12745990.html