1. 什么是过滤器
    Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
    它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。
  2. 过滤器实现功能
    (1)在HttpServletRequest到达 Servlet 之前,拦截客户的HttpServletRequest 。根据需要检查HttpServletRequest,也可以修改HttpServletRequest 头和数据。
    (2)在HttpServletResponse到达客户端之前,拦截HttpServletResponse 。根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。
    (3)Filter接口中有一个doFilter方法,当开发人员编写好Filter,并配置对哪个web资源进行拦截后,Web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,doFilter方法中有一个filterChain对象,用于继续传递给下一个filter,在传递之前我们可以定义过滤请求的功能,在传递之后,我们可以定义过滤响应的功能
  3. 过滤器的生命周期
    (1)Filter初始化

    @Overridepublic void init(FilterConfig filterConfig) throws ServletException {}

    (2)执行过滤的方法

     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {// 过滤请求System.out.println("MyFiter1在请求到达servlet之前的代码处理");// 传递过滤器filterChain.doFilter(servletRequest,servletResponse);// 过滤响应System.out.println("myFilter1在响应回到浏览器之前的代码处理");}

    在这个方法中,可以通过filterChain.doFilter方法控制请求是否继续向后传递。
    同样,在这个方法里面可以使用HttpRequest处理请求,使用HttpResponse作出响应。
    (3)销毁过滤器

  4. @Override
    public void destroy() {System.out.println("销毁过滤器");
    }
  5. 在web.xml文件中配置Filter
    <!--配置filter--><filter><filter-name>myfilter1</filter-name><filter-class>com.bjsxt.filter.MyFilter1</filter-class></filter><filter-mapping><filter-name>myfilter1</filter-name><url-pattern>/mycontroller1</url-pattern></filter-mapping>

Filter过滤器的理解(一)相关推荐

  1. Filter过滤器的这些内容(Filter的生命周期FilterChain过滤器链Filter的拦截路径...),你都理解了吗?

         说说Filter(过滤器),它是javaWeb的三大组件之一,三大组件包括Servlet,Filter,Listener.Servlet前面已经详细说过了,这篇说的是Filter,关于Lis ...

  2. SpringBoot中AOP实现落地——Filter(过滤器)、Intercepter(拦截器)、Aspect(Spring AOP)

    文章目录 一.一切要从Servlet说起 1.1什么是Servlet 1.2为什么需要Servlet 1.3Servlet如何响应用户请求 1.4Servlet与Tomcat处理请求的流程 1.5Se ...

  3. 详谈 Filter 过滤器

    详谈 Filter 过滤器 文章首发在CSDN博客,转载请务必注明以下所有链接,否则考虑法律追究责任. CSDN地址:http://blog.csdn.net/tzs_1041218129/artic ...

  4. JavaWeb三大组件之一——Filter过滤器源码解析(全面手撕Filter源码,需要耐心看完)

    什么是Filter? 本文所说的Filter是JavaWeb中常见常使用的过滤器.Filter的作用是拦截前端发送给后端的请求,一般是用于权限过滤.日志记录.图片转换.加密.数据压缩等操作. 大致流程 ...

  5. java项目配置过滤器_在JavaWeb项目中如何正确的使用Filter过滤器

    在JavaWeb项目中如何正确的使用Filter过滤器 发布时间:2020-11-11 17:12:00 来源:亿速云 阅读:79 作者:Leah 这期内容当中小编将会给大家带来有关在JavaWeb项 ...

  6. java过滤器的执行顺序_Java Filter过滤器(拦截路径的配置+拦截方式的配置+生命周期+多个过滤器的先后执行顺序)...

    Java Filter过滤器+Listen监听器 啥是过滤器 顾名思义即过滤掉一些东西,比如我们经历的高考中考都是过滤器,他过滤掉一些在学习这一方面不是很好的人,而那些成绩好的人则升入高中,大学. 但 ...

  7. Filter过滤器和动态代理处理机制和案例(Filter过滤器和动态代理结合)

    关注公众号:"奇叔码技术" 回复:"java面试题大全"或者"java面试题" 即可免费领取资料 Filter过滤器和动态代理处理机制和案例 ...

  8. filter过滤器和interceptor拦截器的区别和执行顺序

    1.过滤器 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上.它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候 ...

  9. Java ---Filter过滤器

    Filter可以视作是servlet的加强版,主要用作对用户的请求进行预处理,或者对返回给客户端的结果进行再次加工,是一个典型的链式处理模式.本篇简单介绍filter的基本使用方法,主要涉及以下内容: ...

最新文章

  1. python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05...
  2. 25个好用到爆的一行Python代码,建议收藏
  3. oracle中lock和latch的用途
  4. 华锋e路航x10升级工具_万商云集:疫情下火爆的电子合同,背后是企业数字化升级的必然...
  5. 数据挖掘之模型选择和融合
  6. [设计模式-行为型]策略模式(Strategy)
  7. python如何发布项目_python如何发布自已pip项目的方法步骤
  8. html+css响应式布局
  9. centos7 更新php版本,Centos7升级php版本到php7实例分享
  10. c#程序员和java薪酬_语言趋势和薪水:Java的未来之路
  11. 保研面试问题(英文)
  12. VSCODE + 搜狗输入法,两次文字突然变成繁体?
  13. 写一个能火的游戏视频脚本
  14. Seaweed-FS综合使用测试(转)
  15. 基于Proteus学习单片机系列(二)——驱动数码管
  16. 微信公众号教程(9)公众账号发送欢迎图文消息
  17. git如何删除github上的文件,亲测有效
  18. Vss2005使用相关文章
  19. 基于微信公众平台的美食分享系统设计与开发
  20. 在线压缩转换文件的软件

热门文章

  1. MVC用filter做权限过滤
  2. mac下安装node.js6 ,【并使用zsh】
  3. oracle连接数据库的jar包(ojdbc10.jar,ojdbc8.jar,ojdbc6.jar)
  4. java se开发web_javaSE web开发 登录思路代码
  5. Flutter集成个推推送-安卓原生篇
  6. vscode-tab按键失效变为切换控件解决
  7. 7.TensorRT中文版开发教程-----TensorRT中的INT8量化详解
  8. 区块链开发之windows环境配置
  9. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法
  10. DBCA创建数据库实例