2013-03-26 109 views
0

我有一個servlet引擎作爲前端Web服務器,並希望將一些請求轉發給後端服務器。重定向是不可能的。如何使用servlet將請求轉發到後端服務器?

Servlet規範中是否有任何有用的API?或者是這種功能的一些樣本?

我知道我可以通過HttpUrlConnection來做到這一點。但是有沒有更簡單的解決方案?

+0

您可以使用response.sendRedirect([URL])進行重定向,前提是客戶端可以訪問該服務器。 – 2013-03-26 11:54:14

+0

您的問題有兩種可能的解決方案。 – 2013-03-26 11:55:19

+0

如果「後端服務器」運行在同一個Web容器中,那麼您可以轉發請求,這意味着它僅在另一個Servlet上下文中運行。你的環境中是這種情況嗎? – Uooo 2013-03-26 12:43:35

回答

2

您不能轉發請求到另一臺服務器。如果您正在轉發的servlet位於同一臺服務器中,轉發將發揮作用。

所以,你的選擇是:

  • 重定向到後端,
  • 發送一個HTTP請求到後端,提取結果,並傳回給原來的客戶端的響應與原始請求,或
  • 其他不涉及HTTP的東西。

在servlet規範中是否有任何有用的API?

除了您已經找到的(顯然)之外沒有任何區別。

但是有沒有更簡單的解決方案?

AFAIK,no。如果後端是不同的服務器,特別是「前進」不是一個選項。

相關問題