我想從另一個servlet做兩件事情調用一個servlet:調用Servlet中的servlet
- 設置內容類型爲 「multipart/form-data的」
- 設置方法爲 「POST」。
這很容易從表單中完成,但我需要從另一個servlet中完成。任何想法如何?
我想從另一個servlet做兩件事情調用一個servlet:調用Servlet中的servlet
這很容易從表單中完成,但我需要從另一個servlet中完成。任何想法如何?
您可以使用java.net.HttpUrlConnection
或者Apache HTTP客戶端向其他servlet發送POST/GET請求。你將基本上以與瀏覽器相同的方式調用另一個servlet。
這聽起來像是要求forwarding或include是你在找什麼。你實際做的將取決於你打算如何處理目標servlet的輸出。你打算以某種方式顯示它嗎?或者你只是放棄它?在某些情況下,在調用這些方法(例如,創建自己的請求/響應實例或包裝當前請求/響應以隔離狀態更改)方面,您需要更具「創造性」。
或者,爲了簡單起見,您可能需要打開一個到目標servlet的映射URL的網絡連接,如Jeff suggested。
你不能改變傳入的請求,包裝沒有多大意義。你真的必須創建一個全新的請求。然而,我有這樣的印象:OP正在尋找解決他具體問題的錯誤角落(他沒有透露任何有關問題,因此建議正確的解決方案是不可能的)。 – BalusC
這聽起來像你想用java發送一個HTTP POST。我會推薦使用Apache HttpClient。看看這個問題Add parameters to Apache HttpPost
你也可以用純java做這個(HttpUrlConnection)[http://download.oracle.com/javase/6/docs/api/java/net/HttpURLConnection.html]。
HttpClient完美工作,謝謝。雖然我確實有一個問題,但您如何設置內容類型? – fernandohur
我不熟悉HttpClient,但在HttpMethod中查看addRequestHeader。我認爲你可以指定你的內容類型。 – jeff