2011-07-30 74 views
0

我已經執行了一個文件上傳到一個servlet。現在我想執行一些將我轉移到另一個servlet的操作。我從這個上傳的數據中生成了一些字符串,現在我需要將它發佈到另一個將從變量中捕獲該字符串的servlet。怎麼做?如何將變量中的servlet中的數據發佈到servlet?

+0

你有設計問題。將業務作業委託給另一個servlet是一種代碼異味。另一個servlet顯然做得「太多」了。您應該將該代碼重構爲另一個Java類(一個域對象?),然後您只需在這兩個servlet中導入並重用。 – BalusC

回答

3

您可以轉發(服務器端)請求在未來的servlet:

RequestDispatcher dispatcher = request.getRequestDispatcher("/nexturl"); 
dispatcher.forward(aRequest, aResponse); 

您可以將解碼的可變附加到您的會話對象,並從那裏在servlet你期待找回它。 (或者,如果servlet可以用一個參數叫過,檢查會話變量(當你使用它刪除),如果它不存在嘗試分析apropriate參數。)

更新

要使用HTTP會話的方式來傳遞您的變量,添加:

HttpSession session = request.getSession(); 
session.setAttribute("name", "value"); 

和檢索它在未來的servlet:

HttpSession session = request.getSession(); 
String value session.getAttribute("name"); 
session.removeAttribute("name"); 

會話由servlet容器自動創建,如果使用會話cookie將會話狀態映射到來自同一瀏覽器會話的一系列HTTP請求。

+0

作爲在會話中存儲變量的替代方法(如果會話參數管理不正確,會導致不明確的問題),您還可以[使用HttpServletRequest包裝器](http://codethink.no-ip.org/wordpress/archives/634)將您的字符串作爲標準參數傳遞給第二個servlet。 – aroth

+0

你好,我已經成功地重定向到另一個servler:)...現在你能告訴我如何將一個字符串發佈到另一個名爲「var」的servlet中,因爲我的第二個servlet有一個getparameter(「var」)..我沒有維護任何會議......你可以解釋如何使用HttpServletRequest包裝:) –

+0

@Coder_sLaY,我更新瞭解釋如何使用會話。 (或者看看他的評論中的網址) – rsp