过滤器Filter

依赖于servlet容器,基于函数回调,能够对申请和响应进行拦挡,在拜访后端资源之前,拦挡这些来自客户端的申请,在发送回客户端之前,解决这些响应

过滤器的类型

  • 身份验证过滤器
  • 数据压缩过滤器
  • 加密过滤器
  • 触发拜访事件资源的过滤器
  • 图像转换过滤器
  • 日志记录和审核过滤器
  • MIME-类型链过滤器
  • Tokenizing过滤器
  • 转换XML内容的XSL/T过滤器

<!-- more -->

过滤器的应用

须要实现Filter接口,其中蕴含有FilterChain过滤器链和FilterConfig过滤器配置

public interface Filter {      // 由servlet容器调用,批示一个过滤器被放入服务,能够获取web.xml中过滤器的参数    void init(FilterConfig config) throws ServletException;        // 在每次一个申请或响应在所对应的资源下时通过链传递,由容器调用    void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;        // 由servlet容器调用,批示一个过滤器从服务去除    void destroy();}

并且在web.xml中配置写好的Filter

<filter>  <filter-name>security</filter-name>  <filter-class>com.zhanghe.study.webstudy.filter.SecurityFilter</filter-class>  <!--用户名-->  <init-param>    <param-name>userName</param-name>    <param-value>john</param-value>  </init-param></filter><!-- 拦挡的程序与在web.xml中 filter-mapping的配置程序无关,靠前的先被调用 --><filter-mapping>  <filter-name>security</filter-name>  <!-- 除了能够应用url-pattern形式进行拦挡,还能够指定servlet-name形式指定servlet来进行拦挡 -->  <url-pattern>/*</url-pattern>  <!-- 在filter-mapping中有一个dispatcher标签,指定过滤器所拦挡的资源被Servlet容器的调用形式                能够是REQUEST,INCLUDE,FORWARD和ERROR,默认是REQUEST                REQUEST  间接拜访                INCLUDE  通过RequestDispatcher的include办法拜访                FORWARD  通过RequestDispatcher的forward办法拜访                ERROR    通过申明式异样解决机制调用时拜访                能够指定多个dispatcher来指定Filter对资源的多种调用形式进行拦挡 -->  <dispatcher>REQUEST</dispatcher></filter-mapping>
https://zhhll.icu/2021/javaweb/根底/5.过滤器/

本文由mdnice多平台公布