java类
主要重写dofilter方法,这里用来处理字符乱码问题
public class CharacterEncodingFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("开始执行CharacterEncodingFilter");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletResponse.setCharacterEncoding("utf-8");
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html;charset=utf-8");
System.out.println("filter执行前");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("filter执行后");
}
@Override
public void destroy() {
System.out.println("CharacterEncoding销毁");
}
}
注意Chain:需要继续传递参数到其他的过滤器,过滤器像一条链
filter启动:web服务器启动时filter启动
filter销毁:服务器关闭时销毁
filter在xml中的配置:
<filter>
<filter-name>filter1</filter-name>
<filter-class>com.liu.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
和servlet相同的配置