• 过滤器Filter


    功能

    1、⽤来拦截传⼊的请求和传出的响应。

    2、修改或以某种⽅式处理正在客户端和服务端之间交换的数据流。

    与使⽤ Servlet 类似,Filter 是 Java WEB 提供的⼀个接⼝,开发者只需要⾃定义⼀个类并且实现该接⼝即可。

    复制代码
    package com.southwind.filter;
    import javax.servlet.*;
    import java.io.IOException;
    public class CharacterFilter implements Filter {
     @Override
     public void doFilter(ServletRequest servletRequest, ServletResponse
    servletResponse, FilterChain filterChain) throws IOException, ServletException
    {
     servletRequest.setCharacterEncoding("UTF-8");
     filterChain.doFilter(servletRequest,servletResponse);
     }
    }
    复制代码

    web.xml中配置Filter

    复制代码
    <filter>
     <filter-name>charcater</filter-name>
     <filter-class>com.southwind.filter.CharacterFilter</filter-class>
    </filter>
    <filter-mapping>
     <filter-name>charcater</filter-name>
     <url-pattern>/login</url-pattern>
     <url-pattern>/test</url-pattern>
    </filter-mapping>
    复制代码

    注意:doFilter方法中处理完业务逻辑之后,必须添加

    filterChain.doFilter(servletRequest, servletResponse);

    否则请求/响应无法向后传递,一直停留在过滤器中。

    Filter的声明周期

    当 Tomcat 启动时,通过反射机制调⽤ Filter 的⽆参构造函数创建实例化对象,同时调⽤ init ⽅法实现 初始化,doFilter ⽅法调⽤多次,当 Tomcat 服务关闭的时候,调⽤ destory 来销毁 Filter 对象。

    ⽆参构造函数:只调⽤⼀次,当 Tomcat 启动时调⽤(Filter ⼀定要进⾏配置)

    init ⽅法:只调⽤⼀次,当 Filter 的实例化对象创建完成之后调⽤

    doFilter:调⽤多次,访问 Filter 的业务逻辑都写在 Filter 中

    destory:只调⽤⼀次,Tomcat 关闭时调⽤。 同时配置多个 Filter,Filter 的调⽤顺序是由 web.xml 中的配置顺序来决定的,写在上⾯的配置先调用,因为 web.xml 是从上到下顺序读取的。

  • 相关阅读:
    网页中添加下划线的方法汇总及优缺点
    git备注
    微信小程序封装年月日时分组件
    微信小程序底部弹窗动画
    微信小程序返回上一页的方法并传参
    微信小程序组件封装
    taro中子父传值
    taro初识一
    reactjs中使用高德地图计算两个经纬度之间的距离
    vue中使用scss
  • 原文地址:https://www.cnblogs.com/lmygq1728/p/14160882.html
Copyright © 2020-2023  润新知