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>