web 过滤器
1. 基础
- 过滤器可以在servlet处理前进行过滤
- 方法的处理在dofilter方法中
- filterChain.doFilter(request, wrapperResponse),该语句为跳转到下一个过滤器,同时,也可以使请求为controller处理,该语句前为处理请求,其后为处理返回值
- 执行顺序
- 在web.xml中,filter执行顺序跟
<filter-mapping>
的顺序有关,先声明的先执行 - 使用注解配置的话,filter的执行顺序跟名称的字母顺序有关,例如AFilter会比BFilter先执行
- 果既有在web.xml中声明的Filter,也有通过注解配置的Filter,那么会优先执行web.xml中配置的Filte
2. springmvc 处理编码
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>