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>

你可能感兴趣的:(JavaWeb)