过滤器是JavaWeb中比较重要的部分,以下为过滤器的配置以及方法说明
一、创建过滤器
创建过滤器要实现Filter接口,该接口位于javax.servlet包下。以下以字符编码过滤器为实现。
public class EncodingFilter implements Filter
二、过滤器三大方法
1、初始化方法
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// filterConfig可以获取在XML中配置的过滤器初始化参数
}
2、过滤方法
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//这里以过滤字符编码为例
//这里要将其转化为HTTP类型
HttpServletRequest request = (HttpServletRequest)request;
HttpServletResponse response = (HttpServletResponse)response;
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//这里表明传递到下一个过滤器,已经过滤完毕
chain.doFilter(request,response);
}
3、销毁方法
@Override
public void destroy() {
// 在过滤器进行销毁前执行
}
三、XML配置过滤器
在web项目的web.xml文件中进行Filter的配置。
(经过其他大神的讲解,这里要谨记一条原则:在web.xml中,监听器>过滤器>servlet。也就是说web.xml中监听器配置在过滤器之前,过滤器配置在servlet之前,否则会出错。)
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.web.filter.EncodingFilter</filter-class>
//这里是放置过滤器的路径
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
//url中是要过滤的请求路径,如果是字符编码过滤器,则是/*
<url-pattern></url-pattern>
</filter-mapping>