我想根据响应的类型设置HTTP标头。我的问题是有些响应在我设置我的地址之前提交它们的标题。有关如何处理此问题的任何建议?需要在Servlet响应中有条件地设置HTTP标头
1
A
回答
1
一个想法是在之前的过滤器中的响应对象中设置响应头。
另一个问题是向servlet提供一个响应包装器,用于防止实际响应实际提交。这可能需要缓冲内存中的响应主体。
但我认为最好的办法就是修改servlets,让他们设置所需的头文件。
我有缓冲通过提供我自己的OutputStream到包装整个响应?我可以覆盖flush()或类似的东西吗?
这取决于你如何实现它。约束是响应包装器对象必须以某种方式安排在响应主体的写入开始之前添加特殊头文件。在概念上简单的方法是缓冲响应主体,但是你也可以得到响应包装来提供一个输出流/写入器,它在第一次刷新之前将头添加到真实响应输出流/写入器。
我担心的缓冲导致性能问题
是的,以及它可以做,但你需要看整个web应用程序,以确定这是否是显著。
从性能的角度来看,最好的解决方案是让servlet自行设置标题。
+0
你的第二种方法是我需要采取的。我只想根据某些条件更改/添加标头,我不知道哪个servlet完成了。也不在一个地方,所以3也出。我是否需要通过向包装提供自己的输出流来缓冲整个响应?我可以覆盖flush()或类似的东西吗?我很担心导致性能问题的缓冲 – treefrog 2012-11-07 06:49:19
相关问题
- 1. Apache httpd:根据其他*响应*标头有条件地设置响应头
- 2. 需要有条件地从servlet的
- 3. 有条件地在Apache配置中设置过期标头
- 4. 需要设置所有http请求的默认标头
- 5. 在PHP中设置LiteSpeed的自定义HTTP响应标头
- 6. 有条件地在apache中设置缓存标头
- 7. 是否需要在响应头中设置Content-Length?
- 8. 有条件地设置Apache头文件
- 9. 阿卡-HTTP:如何设置响应头
- 10. 在WordPress中修改HTTP响应标头
- 11. 在Firefox中修改HTTP响应标头
- 12. 在zend中删除http响应标头
- 13. 仅在304响应中显示的Servlet响应标头 - Tomcat 7
- 14. 在jasmine-ajax模拟响应中设置响应标头?
- 15. 如何在Express框架中设置位置响应HTTP头?
- 16. 删除Http标头响应
- 17. 正在覆盖HTTP响应标题。哪里可以在Apache中设置HTTP响应头?
- 18. 我的Pragma HTTP响应头文件应该设置为?
- 19. Symfony响应对象如何设置http标头?
- 20. 如何设置IBM HTTP Server的响应标头
- 21. 设置来自AWS的http响应标头
- 22. 如何为304 http响应代码设置Content-Type标头?
- 23. 使用WireMock作为响应设置Content-Length HTTP标头
- 24. 需要在响应式设计中集中英雄箭头
- 25. 有没有办法在JavaScript中获取HTTP响应标头
- 26. 我是否需要设置响应头春位指示
- 27. 在ClientWebSocket中设置“User-Agent”HTTP标头
- 28. 在InputStreamEntity中设置HTTP标头
- 29. 在Play 2.0(scala)中设置HTTP标头?
- 30. 仅记录http servlet响应标题
功能需求尚不清楚,所以这里只是一个相关问题的链接,更清楚地说明了功能需求:http://stackoverflow.com/questions/2563344/how-to-add-response-headers-based- on-content-type-getting-content-type-before-th – BalusC 2010-12-07 22:32:02