java - 修改 HTTP 头并重定向到其他 Web 应用程序(跨应用程序)

标签 java jakarta-ee tomcat http-headers

我找到了一些修改http header的技巧,但不是我需要的。 我正在编写一个网络应用程序,它修改 http header 并重定向 到目标网络应用程序。交叉应用是个问题。

我的解决方案:

在Tomcat中创建一个Valve,修改org.apache.catalina.Valve.invoke(Request, Response)中的header。在 Web 应用程序之前修改请求 header 。

有更好的主意吗?谢谢!

最佳答案

您的意思是以客户不知道的方式“重定向”?听起来像反向代理。 在这种情况下,您可以写 HttpServlet并在其 service(HttpServletRequest req, HttpServletResponse resp) 方法中重写请求参数并向目标服务执行请求(例如使用 HttpClient)。这是独立于平台的解决方案,因为您不基于 Apache 的 Catalina。然而,这两种解决方案(servlet、阀门和可能所有其他解决方案)都有一些缺点。即时代理和修改请求并不像许多有关它的教程所描述的那么简单,尤其是在涉及流式传输或编码等方面时(如果您还想修改内容)。

关于java - 修改 HTTP 头并重定向到其他 Web 应用程序(跨应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9527331/

相关文章:

java - Spring MVC Json 解析限制的最佳解决方法

java - 即使在 2 个不同的 JVM 中,我们如何确保任何应用程序只有一个实例在运行

java - 如何在浏览器上显示提交到数据库的图像?

tomcat - Grails Tomcat OutofMemory 错误

java - 关闭tomcat时Log4j中的这个异常是什么?

tomcat - 由于 Solr 服务器无法启动 Hybris Tomcat 服务器

java - Android - 如何测试 onResume()?

java - 如何使用select关键字显示oracle数据库中的记录

javax.mail.MessagingException 无法连接到 SMTP 主机端口 :25 response -1

html - CSS 文件中的部分类不起作用 (J2EE)