配置 filter 实例中的 dispatcher 节点,用以定义过滤器的分发方式与响应逻辑。
1、新建两个页面文件,分别作为首页与结果页。

2、在首页中添加超链接,实现直接跳转至结果页。

3、结果页内容展示

4、为两个过滤器分别完成步骤一至四的配置


5、常规请求访问时,两个过滤器均会被正常触发。

6、新增 dispatcher.jsp 页面,作为请求转发过程中的中转页


7、重启应用后发现,两个过滤器均未被调用。原因在于:Filter 默认仅拦截客户端发起的原始请求(REQUEST),而页面间通过 RequestDispatcher.forward() 进行的内部转发操作不会触发默认配置下的过滤器。

8、在第二个过滤器的配置中显式添加 <dispatcher>FORWARD</dispatcher>,使其支持对转发请求进行拦截。

9、此时,第二个过滤器已在转发流程中成功执行。

10、当用户直接通过 URL 访问结果页时,第一个过滤器仍会生效,因其默认拦截类型为 REQUEST,覆盖所有直接请求。

11、同样地,在第一个过滤器中也补充 <dispatcher>FORWARD</dispatcher> 配置项,确保其也能响应转发请求。

12、再次访问结果页(无论通过首页跳转或直接输入地址),两个过滤器均已按预期触发并执行。

13、上述演示涵盖了最常使用的两种 dispatcher 类型:REQUEST 与 FORWARD;其余如 INCLUDE 和 ERROR 类型虽存在,但使用频率较低,此处不做展开说明。


















