Java中自定义interceptor拦截器

原创 2018年04月16日 20:34:31

interceptor拦截器

自定义拦截器

    首先需要在xml中配置struts2核心过滤器

    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
    然后在struts.xml中 注册拦截器

<struts>
    <package name="inter" namespace="/" extends="struts-default">
        // 注册拦截器
        <interceptors>
            // 注册你自己定义的拦截器
            <interceptor name="MyInterceptor3" class = "intercepter.MyInterceptor3";</interceptors>
            // 注册拦截器栈
            <interceptor-stack name="myStack">
            // 引入拦截器
                <interceptor-ref name = "MyInterceptor3">
                    // 设置不想拦截的方法
                    <param name="excludeMethods">add</param>
                </interceptor-ref>
            // 除了引用自己的拦截器 还要使用系统默认的拦截器
            // 建议: 先放自己的拦截器 再放系统的拦截器
            // 自己写的拦截器可能会用到系统的拦截器封装好的功能

            // 引入系统默认的拦截器栈
            <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        // 设置默认走的拦截器栈是哪个
        <default-interceptor-ref name="myStack"></default-interceptor>

        <action name="Demo01Action_*" class="intercepter.Demo01Action" method="{1}">
            <result name="success">/hello.jsp</result>
        </action>    
    </package>
</struts>

自定义拦截器方式1

    public class MyInterceptor1 implements Interceptor{
    // 死命周期方法

    // 拦截器的初始化方法
    @Override
    public void init() {
        // TODO Auto-generated method stub

    }
    // 拦截方法
    @Override
    public String intercept(ActionInvocation arg0) throws Exception {
        // TODO Auto-generated method stub
        return null;
    }
    // 销毁方法
    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

}

自定义拦截器方式2

    public class MyInterceptor2 extends AbstractInterceptor{
    /*
     * Does nothing
     */
    @Override
    public String intercept(ActionInvocation arg0) throws Exception {
        // TODO Auto-generated method stub
        return null;
    }

}

自定义拦截器方式3

    public class MyInterceptor3 extends MethodFilterInterceptor{
        @Override
    protected String doIntercept(ActionInvocation invocation) throws Exception {
            // 前处理
            System.out.println("前处理");
            // 放行方法
            // 所有拦截器 都执行完毕后
            // 会拿到一个字符串
            // 这个字符串就是 Action类执行完毕后 返回的 字符串
            String result = invocation.invoke();
            // 后处理
            System.out.println("后处理");
            return result;
        }
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Ssssssue/article/details/79966058

AbstractInterceptor和MethodFilterInterceptor的区别

1.AbstractInterceptor是Interceptor的子类。 2.MethodFilterInterceptor是AbstractInterceptor的子类, 你需要实现的拦截...
  • java122java
  • java122java
  • 2016-11-05 10:15:59
  • 1046

struts2使用AbstractInterceptor实现拦截器

2.使用abstractinterceptor抽象类来实现自定义拦截器 完成用户是否登陆判断 1.写个类继承AbstractInterceptor public class Myinter...
  • xy_focus
  • xy_focus
  • 2016-03-30 17:18:21
  • 3525

flume开发-自定义拦截器(Interceptor)

拦截器是简单的插件式组件,设置在source和channel之间。source接收到的时间,在写入channel之前,拦截器都可以进行转换或者删除这些事件。每个拦截器只处理同一个source接收到的事...
  • yanshu2012
  • yanshu2012
  • 2017-01-04 14:55:21
  • 2472

在spring中配置mybatis 中自定义的拦截器插件

我自己在mybatis 中自定义了一个分页拦截器,在mabatis中是这么注册的 但是如果用spring中配置:  ...
  • u011518709
  • u011518709
  • 2015-06-04 10:07:42
  • 5069

spring security 下web应用安全的关键Filter:FilterSecurityInterceptor

尽管spring security提供了许多filter(参考《spring security 标准Filter及其在filter chain的顺序》)处理不同事情,但在web应用的安全防护上核心fi...
  • dongzi87
  • dongzi87
  • 2015-10-31 23:43:28
  • 4804

Apache CXF拦截器Interceptor实现WebServices用户验证

Apache CXF应该都知道,是一个开源的 Services 框架,可以构建基于SOAP或RESTful 的WebServices ,并且可以和 Spring 天然地进行无缝集成。 不过这里不是关...
  • Mungo
  • Mungo
  • 2016-10-29 23:04:13
  • 4173

spring mvc 使用拦截器interceptor和自定义Log类实现持久层记录日志

首先spring记录日志我所知道的有两种,一种是通过AOP,另一种是通过拦截器interceptor,我这次选择的是拦截器interceptor: 1.spring-mvc.xml文件中配置拦截器,...
  • I__Rookie
  • I__Rookie
  • 2017-03-17 18:14:46
  • 3481

okhttp之自定义Interceptor:缓存拦截器

如何在服务端不支持的情况下为retrofit添加缓存,如何在服务端不支持的情况下为okhttp添加缓存,既然改变不了服务端,就改变自己吧...
  • gengqiquan
  • gengqiquan
  • 2016-08-13 17:41:49
  • 18573

CXF为服务器端和客户端添加自定义拦截器进行权限检查验证并且控制台打印日志(4)

  • lzwjavaphp
  • lzwjavaphp
  • 2013-11-06 11:49:59
  • 12144

Cxf拦截器

Cxf拦截器        拦截器是Cxf的基础,Cxf中很多的功能都是由内置的拦截器来实现的,拦截器在Cxf中由Interceptor表示。Cxf的拦截器包括入拦截器和出拦截器,所有的入拦截器或出拦...
  • elim168
  • elim168
  • 2017-05-17 08:59:39
  • 7408
收藏助手
不良信息举报
您举报文章:Java中自定义interceptor拦截器
举报原因:
原因补充:

(最多只允许输入30个字)