java - 对结果应用过滤器

标签 java servlet-filters ninjaframework

我正在使用 Ninja Framework ( http://www.ninjaframework.org ) 开发一个应用程序,并且我有一个用例,我想将 CORS header 添加到给定路径上的所有响应中。过滤器听起来非常适合此目的,因为它们是自动应用的,因此我不必担心意外忘记添加这些 header 。

但是,根据我所读到的内容,过滤器是在控制传递到 Controller 方法之前应用的,并且一旦返回,就无法更改 Result

有没有一种方法可以修改从我的应用程序发出的所有Result,而不必在我的所有 Controller 中继续编写样板?

最佳答案

显然我误解了文档/指南。

filterChain.next(context) 返回一个 Result,然后可以进一步修改该 Result,返回的 Result 将是有效的写入线路。

给其他读者的注意事项:当使用多个过滤器来注释 Controller 方法时,就像请求在注释中从左到右下降这些过滤器一样,响应从右到左上升返回,这意味着第一个过滤器进入时生效将是最后一个出去时生效的过滤器。

关于java - 对结果应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50285750/

相关文章:

java - DSE 5.0 Graph with Java 中真的需要executeGraph()吗?

java - 使用 JComboBox 的 Java 程序中的警告

java - 在 pig 中使用DayExtractor时,错误1200不匹配的输入 'as'期望为SEMI_COLON

java - 过滤器中的 Ninja Framework JSR303Validation

java - 如何安装第一个 Ninja Web Framework 应用程序?

java - LWJGL Keyboard.isKeyDown 方法是否与更新相关?

tomcat - 如何在Tomcat中添加自定义 header ?

java - 禁用@WebFilter(嵌入在依赖 jar 中)

Java 过滤器无法设置响应 header

java - Ninjaframework:结合 CSS 和 JS 资源