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类进行过滤配置

       <?xml version="1.0" encoding="UTF-8"?>
       <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
         <display-name>web03</display-name>
         <welcome-file-list>
           <welcome-file>index.html</welcome-file>
           <welcome-file>index.jsp</welcome-file>
         </welcome-file-list>
         
         <!-- 配置filter类的别名 -->
         <filter>
         	<filter-name>EncodeFilter</filter-name>
         	<filter-class>cn.zero.filter.EncodeFilter</filter-class>
         </filter>
         <!-- 为filter类配置过滤的请求url -->
         <filter-mapping>
         	<filter-name>EncodeFilter</filter-name>
         	<url-pattern>/*</url-pattern>
         </filter-mapping>
         
       </web-app>
      
  • Filter接口方法的介绍

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

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

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

  • web.xml配置的介绍

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

      <filter>
        	<filter-name>...</filter-name>
        	<filter-class>...</filter-class>
       </filter>
      
      • 用于配置filter实现类的名称

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

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

       <filter-mapping>
         	<filter-name>...</filter-name>
         	<url-pattern>...</url-pattern>
        </filter-mapping>
      
      • 用于指定1.中配置的filter实现类的名称

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

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

    1. 接收客户端的url请求

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

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

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

    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值