Jtti广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Java过滤器Filter详解
  • 494
分享到

Java过滤器Filter详解

Java过滤器Filter 2019-04-25 06:04:35 494人浏览 无得
摘要

目录Filter学习Filter功能Filter的工作原理多个Filter的实现Filter的执行逻辑总结Filter学习 Filter功能 拦截jsp、静态图片文件、静态html资源文件 实现URL级别的权限访问控制

目录
  • Filter学习
    • Filter功能
    • Filter的工作原理
    • 多个Filter的实现
    • Filter的执行逻辑
  • 总结

    Filter学习

    Filter功能

    • 拦截jsp、静态图片文件、静态html资源文件
    • 实现URL级别的权限访问控制
    • 过滤敏感词汇
    • 压缩相应信息

    Filter的工作原理

    源码可以看出来,Filter接口中有3个方法:init、doFilter、destory

    在这里插入图片描述

    init方法,初始化Filter,Filter在服务器启动阶段被实例化。并且调用init方法,init方法只执行一次,因为Filter只被实例化一次。

    destory方法也好理解,就是销毁Filter,释放内存,在运行结束时调用此方法当。长时间没有用户访问,或者项目重新部署,或者服务器重新启动的时候,会销毁所有的Filter对象,销毁之前会先调用Filter对象的destroy方法,完成销毁前的准备工作。也是只执行一次。

    doFilter方法提供给开发者重写过滤逻辑。

    多个Filter的实现

    
    public class AFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            System.out.println("输出filter2的init方法");
        }
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            httpservletResponse response = (HttpServletResponse) servletResponse;
            HttpServletRequest request = (HttpServletRequest) servletRequest;
            System.out.println("输出filter2的doFilter方法之前");
            filterChain.doFilter(request, response);
            System.out.println("输出filter2的doFilter方法之后");
        }
        @Override
        public void destroy() {
            System.out.println("输出filter2的destroy方法");
        }
    }
    
    
    public class BFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            System.out.println("输出filter1的init方法");
        }
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            HttpServletResponse response = (HttpServletResponse) servletResponse;
            HttpServletRequest request = (HttpServletRequest) servletRequest;
            System.out.println("输出filter1的doFilter方法之前");
            filterChain.doFilter(request, response);
            System.out.println("输出filter1的doFilter方法之后");
        }
        @Override
        public void destroy() {
            System.out.println("输出filter1的destroy方法");
        }
    }
    

    配置Filter的过滤顺序,通过setOrder方法执行FilterChain的顺序,数字越小,优先级越高。

    
    @Configuration
    public class WEBConfig {
        @Bean
        public FilterReGIStrationBean filter1() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            AFilter aFilter = new AFilter();
            filterRegistrationBean.setFilter(aFilter);
            filterRegistrationBean.setOrder(1);
            return filterRegistrationBean;
        }
        @Bean
        public FilterRegistrationBean filter2() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            BFilter bFilter = new BFilter();
            filterRegistrationBean.setFilter(bFilter);
            filterRegistrationBean.setOrder(2);
            return filterRegistrationBean;
        }
    }
    

    Filter的执行逻辑

    在这里插入图片描述

    总结

    本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程界的更多内容!

    --结束END--

    本文标题: Java过滤器Filter详解

    本文链接: https://www.lsjlt.com/news/97.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • [Java]过滤器(Filter)
      一、什么是过滤器 过滤器是Servlet的高级特性之一,是实现Filter接口的Java类! 过滤器的执行流程:   从上面的图我们可以发现,当浏览器发送请求给服务器的时候,先执行过滤器,然后才访问Web的资源。服务器响应Response...
      783
      2023-09-27
      servlet java 开发语言
    • java过滤器(Filter)
      原文链接:java过滤器(Filter – 编程屋 目录 1 过滤器简介 2 Filter详细介绍 3 Filter的用法 3.1 用法1  3.2 用法2 1 过滤器简介 filter也称之为过滤器,它是javaWeb三大组件之一(S...
      272
      2023-09-27
      servlet
    • servlet过滤器(Filter)详解(九)
      本文实例为大家分享了servlet过滤器的具体代码,供大家参考,具体内容如下1.servlet过滤器产生背景  项目中我们会遇到这样一类的需求,对访问服务器的用户ip实施过滤,只有在允许名单中的ip才能访问服务,为了实现需求,每当有客户端请...
      142
      2023-09-27
      servlet 过滤器 filter
    • 详解Servlet之过滤器(Filter)
      过滤器1.为什么使用它?有很多全站性的东西需要处理,例如乱码问题,通过过滤器统一进行过滤更简单2.有什么用?实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以...
      919
      2023-09-27
      servlet 过滤器 滤器
    • java filter过滤器怎么使用
      在 Java 中使用过滤器(Filter)需要以下步骤:1. 创建一个类并实现 javax.servlet.Filter 接口。该接...
      718
      2023-09-27
      java filter
    • Vue中的过滤器(filter)详解
      目录过滤器使用位置全局过滤器、局部过滤器 全局过滤器:局部过滤器:过滤器中传入多个参数:多个过滤器串联:官方文档:https://cn.vuejs.org/v2/guide...
      726
      2023-09-27
      Vue中的过滤器 Vue filter过滤器 vue filter
    • SpringBoot过滤器Filter使用实例详解
      目录简介用法功能实现简介 过滤器是AOP(面向切面编程)思想的具体实现。可以过滤浏览器发出的请求,并且决定放行请求还是中断请求。 在浏览器对服务器发起请求或者服务器对浏览器响应,都会...
      913
      2023-09-27
      SpringBoot Filter过滤器 SpringBoot Filter
    • 详解JavaWeb中的过滤器Filter
      目录一、什么是过滤器1.1 使用步骤二、初体验2.1 mynav.html2.2 FilterServlet程序2.3 HelloServlet程序2.4 web.xml2.5 in...
      379
      2023-09-27
      JavaWeb过滤器Filter Filter过滤器的使用步骤
    • java过滤器中Filter的ChainFilter过滤链
      在Java过滤器中,FilterChain是一种过滤链,用于按照一定顺序依次调用多个过滤器对请求进行处理。FilterChain接口定义了一个doFilter方法,该方法接受ServletRequest和ServletResponse作...
      690
      2023-09-27
      java
    • PHP伪协议filter详解,php://filter协议过滤器
      「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 ...
      172
      2023-09-27
      php 网络安全 人工智能 ai
    • JavaWeb中过滤器Filter的用法详解
      目录过滤器Filter处理顺序使用场景自定义过滤器源码分析FilterDefFilterMap初始化过滤器创建过滤器链 ApplicationFilterChain执行过滤器链过滤器...
      743
      2023-09-27
      JavaWeb 过滤器 JavaWeb Filter JavaWeb 过滤器Filter
    • 一文详解JavaWeb过滤器(Filter)
      目录基本介绍过滤器(Filter)接口使用过滤器(Filter)创建过滤器(Fliter)使用过滤器(Filter)配置过滤器(Filter)拦截路径 注解方式xml方式&...
      477
      2023-09-27
      Java 过滤器 Java Filter
    • Java中使用Filter过滤器的方法
      Filter过滤器 着重记录下 public void doFilter(){} 方法参数: (1) ServletRequest servletRequest  请求re...
      277
      2023-09-27
      Filter过滤器的使用 Java过滤器
    • Java过滤器Filter的基本使用教程
      过滤器Filter 用于拦截请求、过滤响应在不使用过滤器时,浏览器向服务器发送请求后,服务器将会直接去获取资源并响应给浏览器添加Filter后,浏览器向服务器发送请求,请求在到达服务...
      420
      2023-09-27
      Java Filter Java Filter过滤器 Java过滤器
    • Java过滤器Filter如何使用教程
      这篇“Java过滤器Filter如何使用教程”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java过滤器Filter如何使用...
      774
      2023-09-27
    • JavaWeb过滤器Filter怎么使用
      这篇文章主要介绍“JavaWeb过滤器Filter怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaWeb过滤器Filter怎么使用”文章能帮助大家解决...
      550
      2023-09-27
      javaweb filter
    • Java Web过滤器详解
      过滤器是什么玩意?所谓过滤器,其实就是一个服务端组件,用来截取用户端的请求与响应信息。过滤器的应用场景:1.对用户请求进行统一认证,保证不会出现用户账户安全性问题编码转换,可在服务端的过滤器中设置统一的编码格式,避免出现乱码对用户发送的数据...
      585
      2023-09-27
      java web 过滤器
    • 详解JavaWeb过滤器Filter问题解决
      目录基本概念1.过滤器概述2.使用过滤器解决中文编码异常问题3.使用过滤器实现用户登录权限拦截基本概念 1、 Filter 过滤器它是 JavaWeb 的三大组件之一。 三大组件分别...
      798
      2023-09-27
      javaweb filter过滤器 javaweb 过滤器
    • Filter过滤器和Listener监听器详解
       Filter过滤器和Listener监听器详解Filter过滤器Filter的简介 对资源的访问进行过滤,相当于小区的保安,进去要检查,出去还要检查。Filter的使用编写一个类,继承并实现javax.servlet.Filte...
      300
      2023-09-27
      filter 过滤器 listener
    • vue过滤器filter的示例分析
      这篇文章将为大家详细讲解有关vue过滤器filter的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue的过滤器一般在JavaScript 表达式的尾部,由“|...
      706
      2023-09-27
      vue filter
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作