2012-03-02 23 views
1

我發現了一些技巧來修改http頭,但它們不是我所需要的。 我正在編寫一個web應用程序,其中修改了 http標頭,重定向到目標web應用程序。交叉應用是個問題。修改HTTP頭並重定向到其他Web應用程序(交叉應用程序)

我的解決辦法:

創建Tomcat上Valve,修改頭在org.apache.catalina.Valve.invoke(Request, Response)。請求標頭在Web應用程序之前被修改。

有什麼更好的想法嗎?謝謝!

回答

1

你的意思是'重定向'的方式,客戶端不知道它?聽起來像反向代理。 在這種情況下,您可以編寫HttpServletservice(HttpServletRequest req, HttpServletResponse resp)方法重寫請求參數,並對目標服務執行請求(例如使用HttpClient)。這是獨立於平臺的解決方案,因爲您不基於Apache的Catalina。但是,這兩種解決方案(servlet,閥門以及其他所有方法)都有一些缺點。代理和修改請求並不像許多關於它的教程所描述的那麼簡單,特別是當涉及流方面的流或編碼時(如果您還想修改內容)。

+0

你的意思是在服務中調用HttpClient API(HttpServletRequest req,HttpServletResponse resp)? – 2012-03-05 03:10:40

+1

反向代理的最簡單形式 - 是的。如果涉及更復雜的情況,它可能演變成單獨的代理項目。 – 2012-03-05 08:18:16

相關問題