servlet学习笔记(3)--filter

本文介绍了Filter作为Servlet的一种加强版,主要负责用户请求的预处理和服务器响应的后处理。详细阐述了Filter的创建过程及其实现流程,并强调了其在实际项目中的优势和应用场景。

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

Filter介绍

Filter可认为是Servlet的一种加强版,它主要用于对用户请求进行预处理,也可以对httpServletResponse进行后处理,是个典型的处理链。Filter也可以对用户请求生成响应,这一点与Servlet相同。

使用Filter的完整流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。

Filter有如下几个用处

①:在httpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。

②:根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。

③:在HttpServletResponse到达客户端前,拦截HttpServletResponse。

④:根据需要检查HttpServletResp,也可以修改HttpServletResponse头和数据。

创建一个Filter只需要两个步骤

①:创建Filter处理类

②:web.xml文件配置Filter。

创建Filter类

首先要实现javax.servlet.Filter接口,在该接口中定义了如下三个方法

①:init(FilterConfig config)用于完成Filter的初始化。

②:destory()用于Filter销毁前,完成某些资源的回收。

③:doFilter(ServletRequest request,ServletResponse response,FilterChain chain):实现过滤功能

实际上Filter和Servlet极其相似,区别只是Filter的doFilter()方法中多了一个FilterChain的参数,通过该参数可以控制是否放行用户请求。在实际项目中,Filter里doFilter()方法里的代码就是从多个Servlet的service()方法里抽取的通用代码。通过使用Filter可以实现更好的代码复用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值