2012-11-12 77 views
1

可能重複:
communication between remote servlets的Servlet與其他服務器communticating

是否可以發送servlet之間的對象在不同的​​服務器? 問題是,當我的servlet收到一個http請求時,在發送響應之前,它需要發送一些數據到另一個web應用程序(在不同的服務器上),得到響應,然後處理接收到的數據。不過,我不知道如何解決這個問題。 servlet是否可以向另一個servlet發送http請求,然後從中獲取響應?

回答

0

當然可以 - 您可以像創建JavaSE一樣創建一個HttpURLConnection。通常,我所做的是在發生錯誤時將原始(第二個服務器)HTTP錯誤代碼轉發給客戶端。

0

這裏有一個如何使用HttpURLConnection類與另一個servlet(或任何HTTP服務器)進行通信的例子......

URL url = new URL ("http://host/myservlet"); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setDoOutput (true); 
connection.setDoInput (true); 
OutputStream os = connection.getOutputStream(); 
//TODO: optionally, send something through the OutputStream to your servlet 
os.flush(); 
os.close(); 
InputStream is = connection.getInputStream(); 
//TODO: retrieve your results from the InputStream 
is.close(); 

務必完成後關閉您的流或使用try-與資源塊。您可以根據您的需要使用ObjectInputStream或InputStreamReader。您還可以使用HttpURLConnection的setRequestProperty方法來定義諸如用戶代理或cookie之類的內容(如果需要的話)。