作用
拦截请求,过滤响应
实现
实现 Filter 接口
执行顺序
根据过滤器的配置方式分别
-
配置文件(web.xml)配置,执行顺序由
<filter-mapping>
标签的配置顺序决定 -
注解配置,执行顺序由filterName属性值的字母顺序决定
常见问题
无法实现Filter接口
找到apache-tomcat-8.5.75->lib->Servlet-api.jar导入
字符编码设置
@WebFilter(urlPatterns = {"/*"})
public class CharsetFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("UTF-8");
servletResponse.setCharacterEncoding("UTF-8");
servletResponse.setContentType("text/html;charset=UTF-8");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
web.xml配置Filter
<!--配置过滤器-->
<filter>
<filter-name>Charser</filter-name>
<filter-class>com.xxx.controller.filter.CharsetFilter</