JavaWeb之过滤器的应用
过滤器是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>
