tomcat - 我应该在进行后处理之前刷新过滤器中的响应以改善延迟吗?

标签 tomcat servlets servlet-filters

我正在运行一个 Tomcat 网络服务器,并有一个配置为位于我的 servlet 前面的过滤器链。链中的所有过滤器都对请求进行后处理,例如日志记录等,并且不修改响应的内容。

我注意到,直到所有过滤器都处理完响应后,响应才会返回给客户端,这会增加响应的延迟。我通过在执行以下操作的链底部添加一个过滤器来修复此问题

response.flushBuffer()

这确保响应在其他过滤器进行后期处理之前刷新到内核。 我的问题是这是否是一种标准做法,或者是否有更好的方法来解决这个问题?

最佳答案

有效且合乎逻辑的行动是优化代码和业务,如果它自然很重,那么您需要更多的处理能力。

这取决于链后的过滤器做什么?

如果它们影响响应元/ header ,那么刷新可能无济于事,因为 header 必须先行。

共享过滤器和 servlet codez 将有助于找到最佳解决方案。

关于tomcat - 我应该在进行后处理之前刷新过滤器中的响应以改善延迟吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32125359/

相关文章:

java - 为什么从远程机器访问时 request.getRemoteAddr().equals ("127.0.0.1")

java - 如何在 servlet web 模块 3.0 中指定欢迎文件列表

java - spring 中的 Node response.end() 等效项

spring - 在 Spring Boot MVC 中添加 ShallowEtagHeaderFilter

ajax - 使用 servlet 过滤器中的请求参数将 JSF ajax 请求重定向到 URL

tomcat - StandardWrapperValve 是否创建新的 servlet 实例?

tomcat - 如何获取tomcat ApplicationContextFacade的工作目录

java - 为什么无法从 WEB-INF 文件夹中加载 POSModel 文件?

tomcat - 从 IntelliJ 启动 tomcat/JBoss 时出现问题

spring - 当用户被记住时,如何使用 Spring Security 执行自定义逻辑?