Filter使用详解 Spring细节特性

2016-11-21 21:38:00
admin
原创 1793
摘要:Filter使用详解 Spring细节特性

一、Filter使用详解

1、Filter用于拦截静态和动态资源,filter-mapping用于指定拦截哪些地址;

2、不同Filter可以拦截不同的地址,经验上拦截所有地址不容易产生安全漏洞

3、Filter的执行顺序与在web.xml配置文件中的配置顺序一致,Filter一般配置在所有Servlet之后;

4、过滤器位于客户端和web应用程序之间,用于检查和修改两者之间流过的请求和响应;

5、chain.doFilter(request, response)前面的代码处理请求,后面的代码处理响应;

6、如果不调用chain.doFilter(request, response),则拒绝了具体业务逻辑;


filter典型配置:

    <filter>
        <filter-name>HttpRequestFilter</filter-name>
        <filter-class>com.webank.core.HttpRequestFilter</filter-class>
        <init-param>
            <param-name>enabled</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
        <param-name>excludes</param-name>
            <param-value>/login;</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>HttpRequestFilter</filter-name>
        <url-pattern>*.do</url-pattern>
    </filter-mapping>


二、Spring细节特性

1、listener、servlet、filter加载顺序:context-param -> listener -> servlet -> filter

2、后缀匹配效果:/cgi/action可以匹配/cgi/action.*,spring5之前版本默认开启;

3、后缀匹配开启:mvc:annotation-driven增加<mvc:path-matching suffix-pattern="true"/>

发表评论
评论通过审核之后才会显示。