为什么转发的请求会再次通过过滤器链?

2024-01-14

我为 Grails 应用程序实现了不常见的架构,因为我制作了仅进一步转发请求的前端控制器(基于某些标准)。我还将语言环境解析器实现为 http servlet 请求过滤器。事实证明,转发的请求再次通过过滤器链。所以流程看起来像这样:

  1. 请求到达 Grails 应用程序
  2. 请求通过我的过滤器
  3. 前端控制器收到请求并进一步转发
  4. 转发的请求再次通过我的过滤器
  5. 后台控制器收到请求

在写这篇文章的同时,我想出了如何忽略这个问题(我的实现特定)。但我仍然很好奇为什么会发生这种情况?前锋应该在幕后工作。 Java EE 规范没有提及此行为(转发javadoc http://download.oracle.com/javaee/5/api/javax/servlet/RequestDispatcher.html#forward%28javax.servlet.ServletRequest,%20javax.servlet.ServletResponse%29).


In the <filter-mapping>元素有前进<dispatcher>选项。这包括FORWARD。您必须列出您希望应用过滤器的选项(请求、错误、包含)并忽略向前。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么转发的请求会再次通过过滤器链? 的相关文章

随机推荐