修改HTTP头并重定向到其他Web应用程序(交叉应用程序)
问题描述:
我发现了一些技巧来修改http头,但它们不是我所需要的。 我正在编写一个web应用程序,其中修改了 http标头,将重定向到目标web应用程序。交叉应用是个问题。修改HTTP头并重定向到其他Web应用程序(交叉应用程序)
我的解决办法:
创建Tomcat上Valve
,修改头在org.apache.catalina.Valve.invoke(Request, Response)
。请求标头在Web应用程序之前被修改。
有什么更好的想法吗?谢谢!
答
你的意思是'重定向'的方式,客户端不知道它?听起来像反向代理。 在这种情况下,您可以编写HttpServlet和service(HttpServletRequest req, HttpServletResponse resp)
方法重写请求参数,并对目标服务执行请求(例如使用HttpClient)。这是独立于平台的解决方案,因为您不基于Apache的Catalina。但是,这两种解决方案(servlet,阀门以及其他所有方法)都有一些缺点。代理和修改请求并不像许多关于它的教程所描述的那么简单,特别是当涉及流方面的流或编码时(如果您还想修改内容)。
你的意思是在服务中调用HttpClient API(HttpServletRequest req,HttpServletResponse resp)? – 2012-03-05 03:10:40
反向代理的最简单形式 - 是的。如果涉及更复杂的情况,它可能演变成单独的代理项目。 – 2012-03-05 08:18:16