WsztRush

WEB开发笔记

用SpringBean来配置Filter

在web开发中通常会遇到多个环境的问题,比如开发和线上,那他们使用的配置信息也是不同的,Spring给出的解决这个问题的方法是变量替换:

<bean class="my.class.path">
    <property name="env" value="${ENV}"/>
</bean>

但是对于web.xml中的属性这样搞就行不通了,那简单的解决办法就是绕路了:用Spring中配置的Bean来作为Filter行不行?答案是肯定的:

<filter>
    <filter-name>ssoFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>targetBeanName</param-name>
        <param-value>myFilterBean</param-value>
    </init-param>
    <init-param>
        <param-name>targetFilterLifecycle</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

容器初始化的顺序为Listener->Filter->Servlet,这样上面这种玩法跑通就没有问题了~

Cache-Control的使用