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

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(使用前将#替换为@)

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

  • 对 Java Servlet 进行单元测试

    我想知道对 servlet 进行单元测试的最佳方法是什么 只要内部方法不引用 servlet 上下文 测试内部方法就不是问题 但是测试 doGet doPost 方法以及引用上下文或使用会话参数的内部方法呢 有没有办法简单地使用经典工具 例
  • Grails:SpringSecurity 角色层次结构未按预期工作

    我正在 Grails 2 0 1 中使用 springsecurity 插件 我的角色层次结构和其他 s2 属性如下所示 grails plugins springsecurity userLookup userDomainClassNam
  • 访问 PUT 或 POST 请求的原始正文

    我正在 Grails 中实现 RESTful API 并使用自定义身份验证方案 该方案涉及对请求正文进行签名 以类似于 Amazon 的 S3 身份验证方案的方式 因此 为了验证请求 我需要访问原始 POST 或 PUT 正文内容来计算和验
  • 使用 Groovy 将文件从一个文件夹复制到另一个文件夹

    new AntBuilder copy todir destinationDir fileset dir sourceDir 我已使用上面的代码将文件从源文件夹复制到目标文件夹 它在 grails 2 3 0 上运行良好 现在将 grail
  • 如何使用 JPA 和 Hibernate 修复 StaleObjectStateException

    控制器逻辑 def updateObject Object o Object get params id as Long o otherObjects clear objectDataService saveObject o id Othe
  • Web 服务器和 servlet 容器之间的区别

    Web 服务器 和 Servlet 容器 有什么区别 一般来说 所有 Web 服务器也是 Servlet Web 容器 反之亦然吗 我一直在使用 Apache Tomcat for JSP 和 Apache for PHP 但无法弄清楚这两
  • 如何引用 WEB-INF 中的 client_deploy.wsdd 文件?

    一个基本问题 但我似乎找不到答案 我有一个 Axis 生成的 Web 服务 它还调用另一个 Web 服务 其存根也是使用 Axis 生成的 它部署在weblogic 9 2中 所谓的 Web 服务需要身份验证 我已经用谷歌搜索了设置身份验证
  • 在 Grails 控制台中导入服务?

    如何获取 grails 控制台中的服务 我的业务规则是在服务中实现的 但我无法在 grails 控制台中访问它们 有谁知道如何帮助我 春天ApplicationContext可用为ctx控制台中的变量 您可以使用它来访问 Spring be
  • 更改 Grails 的 Groovy 版本

    如何将 Grails 1 3 7 使用的 groovy 版本更改为 groovy 1 7 9 我在 Grails 1 3 7 应用程序中遇到这个问题 其中 Quartz 进程每分钟都会实例化大约 500 个新对象 如下所示 class Fo
  • Apache FileUpload API 中的 InputStream 已关闭

    这是一个非常具体的问题 我希望这里有人对 FileUpload API 有很好的了解 如果您使用过此 API 您应该知道 当超过文件的最大大小时 将无法读取下一项 因为会抛出 FileSizeLimitExceededException 并
  • 升级到Grails 2.4.1后就没有这个方法了

    我刚刚升级到Grails 2 4 1似乎有问题tag libraries Class java lang NoSuchMethodError Message org codehaus groovy grails plugins web ap
  • 允许从 servlet 进行渐进式下载吗?

    我在传送多媒体数据的 servlet 方面遇到问题 我尝试在 iPhone 上的 mobile safari 中使用它 但收到 服务器配置不正确 错误 我在 Mac Apache 上使用网络共享来服务器相同的多媒体文件 并且工作正常 我开始
  • Tomcat:模块版本冲突。模块 [groovy-all 已在版本 2.3.7 中加载,而您正在尝试加载版本 2.4.3

    我有一个 jenkins 构建服务器来构建我的 grails 项目 我最近更新到 grails 2 5 0 和 groovy comiler 2 4 3 到目前为止 一切都很好 詹金斯再次发动战争 但是当我在 Tomcat 上部署战争时 出
  • Grails:在域类中动态注入服务

    我需要注入基于域属性的服务 到目前为止我想出了以下内容 ApplicationHolder application getServiceClass package property Service clazz 但以这种方式加载它不会注入它的
  • Grails 测试中的模拟配置

    在 Grails 2 0 X 之前 可以使用mockConfig测试扩展的基类提供的方法 然而 在 Grails 2 0 X 中 建议测试类使用 TestFormixin 而不是扩展基类 这个 mixin 似乎没有提供任何与mockConf
  • 如何解决 javax.net.ssl.SSLHandshakeException 错误?

    我通过 VPN 连接来设置库存 API 来获取产品列表 效果很好 一旦我从网络服务获得结果并绑定到用户界面 而且我将 PayPal 与我的应用程序集成在一起 以便在我拨打电话付款时进行快速结帐 但我遇到了此错误 我使用 servlet 进行
  • web.xml 过滤器如何工作?您可以将两个过滤器映射到所有页面 (/*) 并指定顺序吗?

    我想使用 Spring Security 它说将过滤器映射到 但我已经有一个映射到 的过滤器 即 Tuckee URLRewrite 过滤器 是否可以将两个过滤器映射到同一事物 并且有没有办法指定过滤器的调用顺序 是的你可以 servlet
  • Grails 在 gsp 中迭代与访问 Map 元素

    完整上下文 我正在尝试使用 grails 应用程序处理多个文件 我将显示的代码来自后处理页面 其中提供了有关已处理文件的信息 我最初的感觉是使用这样的代码 table tr th Parsed from Excel th th Upload
  • 如何获取 Grails 应用程序的绝对路径

    我希望用户能够下载我的文件web app images folder 我已经建立了这样的行动 def download def file new File params filepath if file exists response se
  • 使用Table Per Subclass时如何确保数据完整性?

    我正在使用每个子类的表Grails 中的策略通过设置tablePerHierarchy静态的性质mapping我的超类中的字段为 false 这样 Grails 会为我的超类创建一张表 并为我的每个子类创建一张附加表 然而 虽然超类和子类记

随机推荐