Filter如何拦截请求? 【Servlet高级】

文章介绍了Web应用程序中的Filter机制,当多个Filter针对同一URL拦截时形成Filter链。Filter1先处理请求,然后通过doFilter()方法将请求传递给Filter2,依次类推,响应时则按相反顺序。文章还提及了JavaWeb的核心技术如Servlet、Listener,并推荐了一个JavaWeb快速入门教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 在一个Web应用程序中可以注册多个Filter程序,每个Filter程序都可以针对某一个URL进行拦截。如果多个Filter程序都对同一个URL进行拦截,那么这些Filter就会组成一个Filter链(也称过滤器链)。Filter链用FilterChain对象中有一个doFilter()方法,该方法的作用是让Filter链上的当前过滤器放行,使请求进入下一个Filter。

  Filter链的拦截过程如图14-6所示。

  图14-6 Filter链

  在图14-6中,当浏览器访问Web服务器中的资源时,需要经过两个过滤器Filter1和Filter2。首先Filter1会对这个请求进行拦截,在Filter1中处理完请求后,通过调用Filter1的doFilter()方法将请求传递给Filter2,Filter2处理用户请求后同样调用doFilter()方法,最终将请求发送给目标资源。当Web服务器对这个请求做出响应时,也会被过滤器拦截,但这个拦截顺序与之前相反,最终将响应结果发送给客户端浏览器。

推荐课程:

JavaWeb快速入门教程

熟悉Web开发中常用知识如 HTML5、CSS3、JavaScript、BootStrap、jQuery等掌握JavaWeb开发核心技术 Servlet、Listener、Filter 等熟悉Linux服务器,并安装开发常用软件Tomcat、 MySQL、Nginx等掌握同步及异步操作的JavaWeb开发,具备B/S结构软 件开发能力,完成基本的JavaWeb项目

https://www.bilibili.com/video/BV1mE411h7Co/?spm_id_from=333.999.0.0&vd_source=9c4eaee002825d9385410d4fde301d24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值