JavaWeb Servlet过滤器概述

109 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第34天,点击查看活动详情

Servlet过滤器

1、什么是过滤器

Servlet过滤器具有拦截浏览器端请求的功能,Servlet过滤器可以改变请求中的内容来满足实际开发中的需求。 实质上Servlet过滤器就是在web应用服务器中的一个web应用组件,用于拦截浏览器与目标资源的请求,并对这些请求进行一定的过滤处理在发送给目标资源。 在这里插入图片描述

说明:web服务器部署了过滤器以后,不仅浏览器端发送请求会经过过滤器的处理,当发送到目标资源以后,响应时也同样会经过过滤器。 过滤器链: 当一个过滤器不满足实际业务的需求时,可以配置部署多个过滤器进行处理,这样就组成了一个过滤器链。 在这里插入图片描述

2、过滤器的创建与配置

(过滤器和Servlet同属于web组件,所以过滤器的创建和配置与Servlet的创建和配置极其类似。)

  • (1)写一个类实现Filter接口
  • (2)在该类中重写父接口中的方法,在这些方法中实现过滤器的功能。
  • (3)在web.xml中配置过滤器

3、过滤器的生命周期

过滤器在web项目中配置完成以后: 过滤器的创建:web项目第一次部署到tomcat服务器中,tomcat服务器会创建过滤器,自动执行过滤器中的init方法。 过滤器的销毁:web项目从tomcat服务器中移除时,tomcat服务器会销毁过滤器,自动执行过滤器中的destory方法。 Tomcat服务器重新部署(redeploy)web项目的时候,tomcat服务器会对过滤器销毁和重新过创建,会自动先执行destory方法,再执行init()方法 在这里插入图片描述

当浏览器端发送请求,过滤器拦截到该请求后,执行过滤器的doFilter核心方法,如果有chain.doFilter(request, response)代码,会向下一个过滤器或者目标资源进行传递,如果没有该代码,程序会卡在doFilter核心方法不会往下执行了。