开发工具与关键技术:javaWeb,过滤器(Filter)
撰写时间:2019-05-26

总结下述所有表达
第一点:过滤器是什么
第二点:客户端到服务端的流程
第三点:过滤器如何编写
第四点:Filter接口的生命周期及方法执行时期
第五点:三个方法中的重要参数了解及理解doFilter
第六点:web.xml的配置及四种拦截方式
第七点:目标资源与过滤器的执行顺序
第八点:多个过滤器的执行顺序
第九点:过滤器的应用场景

过滤器是什么
通俗的说就是过滤,就如一台带有过滤功能的饮水机,里面就会有个过滤器,无论是什么物质都需要经过这个顾虑器。让这个饮水机的过滤器去把水与其他的杂物区分开来。
Java的过滤器也是一样,我们可以自己在一个没有过滤器的程序里面加上过滤器,同时可以选择拦截下什么资源,放行什么资源。
过滤器可以有一个或者多个。多个过滤器也就是为了,更好的分配过滤器的工作,什么情况下使用到这个过滤器,但是有一点就是,程序是每一个过滤器都会经过,但不一定会拦截。
客户端到服务端在回到客户端的程序。(如下图)

解释上图
从客户端发送请求,到过滤器,如果被这个过滤器拦截下来了,就不会继续访问下一个过滤器了,而是执行其他功能,或者不执行。
过滤器如何编写
1、 过滤器(Filter接口)是一个接口,所以需要一个实现这个接口的类。
2、 配置:在web.xml文件中配置,配置之后才会有效果,就如servlet一样。
Filter接口的生命周期
先实例到实现,并初始化(init())到使用(doFilter())到关闭之前(destroy())
init(FilterConfig)
什么执行:创建Filter之后,马上执行;
什么时候创建呢:Filter会在服务器启动时就创建
doFilter(ServletRequest,ServletResponse,FilterChain)
什么时候执行:每次过滤时都会执行
destroy()
什么时候执行:在销毁之前执行
什么时候销毁呢:在服务器关闭时销毁
三个方法测试结果总结
当启动服务器时init方法马上执行了(在还没打开网页前已经执行了)
在过滤时(网页刷新时)才运行doFilter方法
当关掉服务器时执行destroy方法,就是当你点击关闭服务器是,就在执行了,伴随关闭一起执行

三个方法中的重要参数了解

理解doFilter
Filter接口下有个doFilter方法,这个方法的参数是有三个,而doFilter参数中有个参数是FilterChain,FilterChain中有个方法也是doFilter,单这个方法的参数只有两个。这个就是区别
Filter接口的doFilter方法是每次过滤都会被调用
FilterChain的doFilter方法是用来放行。

web.xml的配置
配置与servlet的几乎相同,就是多了个dispatcher标签。

过滤器的四种拦截方式:REQUEST 是默认的,当输入其他的,那么默认的将取消(消失)。
请求(拦的是直接请求,不拦转发请求):REQUEST
转发(专门拦转发):FORWARD
包含(专门拦包含):INCLUDE
错误(专门拦错误):ERROR
小提醒:以上四种都是专门拦截的,不拦转发后的请求,所以使用的时候要注意灵活应用。
过滤器与目标资源执行顺序
FilterChain#doFilter()方法;
执行目标资源,或是执行下一个过滤器!如果没有下一个过滤器那么执行的是目标资源,如果有,那么执行下一个过滤器。

多个过滤器的执行顺序
的配置顺序决定了过滤器的执行顺序
就是哪个文件在第一个,谁就是第一个执行。

过滤器的应用场景
1、执行目标资源之前做预处理工作,例如设置编码,这种通常都会放行,只是在目标资源执行之前做一下准备工作。
例如放行 :几乎所有的servlet中都需要写request.setCharacterEndoin()可以把它放入到一个Filter中
2、通过条件判断是否放行,例如效验当前用户是否已经登录,或者用户IP是否已经被禁用;
3、在目标资源执行后,做一些后续的特殊处理工作,例如把目标资源输出的数据进行处理;(回程拦截)

JavaWeb过滤器(Filter)相关推荐

  1. JavaWeb过滤器(Filter)详解,是时候该把过滤器彻底搞懂了(万字说明)

            注意:这篇文章很长,学习完后将会解决你对于过滤器(Filter)的所有疑惑,下面将通过理论和代码的结合来进行讲解演示.....  目录 基本介绍 过滤器原理 过滤器(Filter)接口 ...

  2. JavaWeb中监听器Listener+过滤器filter+拦截器interceptor区别

    JavaWeb中监听器Listener+过滤器filter+拦截器interceptor区别 如果从整个项目中看,一个servlet请求的执行过程就变成了这样context-param–>lis ...

  3. Javaweb核心之servlet规范过滤器-----Filter

    2 Servlet规范中的过滤器-Filter 2.1 过滤器入门 2.1.1 过滤器概念及作用 过滤器--Filter,它是JavaWeb三大组件之一.另外两个是Servlet和Listener. ...

  4. (JavaWeb)Filter过滤器

    Filter过滤器 Filter:过滤器,用来过滤网站的数据. 自动登录 统一设置编码格式 访问权限控制 敏感字符过滤等 过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或serv ...

  5. ⑧javaWeb之在例子中学习(过滤器Filter)

    前言 本系列 Servlet & JSP 学习系列[传送门]逐渐到了中期了,希望大家喜欢我写的,总结的点点滴滴- 今天我们来讲讲过滤器 你们的支持是我写博客的动力哦. 最近买了两本书,觉得大二 ...

  6. java脏字过滤_分享JavaWeb中filter过滤器的案例妙用 - 脏话过滤/编码过滤/代码过滤...

    案例1. 利用Servlet的过滤器Filter进行完成脏话过滤 package cn.javabs.filter; import java.io.IOException; import javax. ...

  7. java脏话模糊对比_分享JavaWeb中filter过滤器的案例妙用 - 脏话过滤/编码过滤/代码过滤...

    案例1. 利用Servlet的过滤器Filter进行完成脏话过滤 package cn.javabs.filter; import java.io.IOException; import javax. ...

  8. javaweb项目Filter过滤器详解

    Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 ht ...

  9. JavaWEB过滤器和监听器技术

    过滤器介绍 什么是过滤器 生活中的例子: 滤水器,口罩,杯子上滤网,渔网 生活中的过滤器:留下我们想要的,排除,我们不想要的. 高考: 只有分数够高的同学才能进入理想的大学.有一部分同学被拦截在大学之 ...

最新文章

  1. 开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍
  2. 如何阅读微控制器数据手册:简介和第一步
  3. Mybatis操作数据库实现主键自增长
  4. odoo10 工作流、安全机制、向导
  5. 关于Linux系统下在使用close关闭串口设备时引起的内核崩溃问题解决方法
  6. PHP面向对象(OOP)编程入门教程
  7. 执行计划重编译的时机
  8. 网联能否一统天下,取决于三个问题
  9. [转载]理解OAuth 2.0
  10. mssql访问 oracle
  11. 推荐几本比较好的投资书籍
  12. @Controller与@RestController有何区别
  13. nginx+uwsgi启动Django项目
  14. ubuntu vmplayer安装vmtool
  15. excel筛选,排序
  16. 18104 练习使用多case解题(3种多case的情况)(c语言或c++)
  17. Android仿人人客户端(v5.7.1)——新鲜事之分享照片
  18. 稳定版正式发布 | 用 Flutter 构建 Windows 桌面应用程序
  19. unreal编译源码搭建dedicated server的流水账——但是细
  20. 【Java】简单的马戏团节目单项目

热门文章

  1. 回调地狱的产生,以及如何解决回调地狱
  2. Java服务端集成环信IM
  3. 联想拯救者系统重装?不求人教程
  4. 资格考试_第四章_证券投资基金的监督
  5. 18118 勇者斗恶龙
  6. 英飞凌TC387在EB环境下的MCAL工程建立
  7. 随机效应估算与固定效应估算_固定效应模型及估计原理说明.doc
  8. Git详细使用说明++
  9. 文字的纵向显示的问题 cdc drawtext
  10. CC2530基础实验:(1)按键控制LED跑马灯