Filter过滤器

Filter

  • 简介:过滤客户端发送的url请求,确保服务端某些网页资源不被随意访问

  • 使用方式:

    1. 创建一个实现Filter接口的实现类,并实现对应的方法、指定过滤的做法

       import java.io.IOException;
       import javax.servlet.Filter;
       import javax.servlet.FilterChain;
       import javax.servlet.FilterConfig;
       import javax.servlet.ServletException;
       import javax.servlet.ServletRequest;
       import javax.servlet.ServletResponse;
       import javax.servlet.annotation.WebFilter;
       
       
       public class EncodeFilter implements Filter {
       
       	//构造方法
           public EncodeFilter() {
               // TODO Auto-generated constructor stub
           }
       
           //filter类的销毁方法
       	public void destroy() {
       		// TODO Auto-generated method stub
       	}
       	
       	//处理过滤的方法
       	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
       		// TODO Auto-generated method stub
       		// place your code here
       
       		// pass the request along the filter chain
       		chain.doFilter(request, response);
       	}
       
       	//初始化方法
       	public void init(FilterConfig fConfig) throws ServletException {
       		// TODO Auto-generated method stub
       	}
       
       }
      
    2. 在web.xml配置文件中对Filter类进行过滤配置

       
       
         web03
         
           index.html
           index.jsp
         
         
         
         
         	EncodeFilter
         	cn.zero.filter.EncodeFilter
         
         
         
         	EncodeFilter
         	/*
         
         
       
      
  • Filter接口方法的介绍

    • init():初始化方法,用于对一些数据的初始化设置

    • destory():销毁方法,用于销毁Filter对象

    • doFilter():过滤方法,用于对指定url请求进行过滤

  • web.xml配置的介绍

    1. 配置filter实现类的名称:

      
        	...
        	...
       
      
      • 用于配置filter实现类的名称

      • 用于指定filter实现类,必须使用包全名

    2. 配置filter实现类的映射url

       
         	...
         	...
        
      
      • 用于指定1.中配置的filter实现类的名称

      • 用于为filter实现类映射要过滤的url请求

  • Filter实现类过滤请求的过程:

    1. 接收客户端的url请求

    2. 查找配置文件中的Filter实现类配置,从上到下依次经过每一个符合条件的Filter实现类的过滤操作(doFilter()方法中chain.doFilter(request, response);前面的代码处理)

    3. 经过过滤的url请求,经服务端处理后,还要逆序经过每一个符合条件的Filter实现类的再处理(doFilter()方法中chain.doFilter(request, response);后面的代码处理)

    4. 经过再处理后,返回到客户端

    Filter过滤器_第1张图片

你可能感兴趣的:(java,web)