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

原文 标签 java java-ee tomcat http-headers

我发现了一些修改http标头的技巧,但这些不是我所需要的。
我正在编写一个可修改http标头并重定向到目标Web应用程序的Web应用程序。交叉应用是问题所在。

我的解决方案:

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

有更好的主意吗?谢谢!

最佳答案

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

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

相关文章:

java - Primefaces登录应用程序

java - 在Java中的httppost之后处理响应

java - 不同的Java EE容器提供的服务

java - 通过Join进行JPA更新

java - Java等价于PHP数组POST数据

java - 如何更改应用程序的外观?

java - 如何在JBOSS AS 5.1.0中添加管理用户?

java - Maven如何找到要使用的依赖项?

apache - 使用Apache 2.4的多个Web应用程序

tomcat - 无法从本地网络访问Tomcat服务器