2012-02-21 87 views
0

我在jsp文件中有一個表單,我用它來獲取用戶詳細信息。在單擊提交按鈕時,表單操作已被設置爲另一個將詳細信息插入到數據庫中的jsp文件。 但在此之前,只要用戶輸入用戶名,就會有一個檢查可用性按鈕。 單擊按鈕我希望控件轉到另一個jsp頁面以及用戶名作爲參數。我正在做檢查可用性。我想將回應返回到以前的jsp文件。 這可以使用「請求調度程序」來完成。如果是,是否有人可以解釋請求調度程序的包含和轉發方法。我試圖在網上搜索它。只有可用的代碼。我想知道這個請求調度程序是什麼以及它是如何工作的。請求調度程序

回答

1

請求調度程序將請求分派給給定的目標。請求調度程序基本上將控制權交給給定的目標。在JSP的情況下,JSP將使用給定的請求並將其輸出發送給給定的響應。

include()方法允許您在控件返回後繼續使用響應,以便您可以在必要時添加一些數據。包含的目標不允許操作響應頭。 include()的目標應該是最終迴應的一部分。 forward()方法允許您將控件完全傳遞給給定的目標。被轉發的目標被允許操縱響應頭。 forward()的目標應該是整個 JSP文件本身,您希望以其全部榮耀(反過來可以包含其他JSP)呈現它。

在這種情況下,您需要發送轉發。哦,這種工作不屬於JSP,而是屬於Servlet。當您試圖轉發請求的JSP已經向響應發送了一些數據時,您可能會面臨IllegalStateException

+0

所以,當用戶點擊「檢查可用性按鈕」時,我可以使用include方法來檢查用戶可用性。輸出(「用戶名可用」或「不可用」)將顯示在同一頁面(原始頁面)上。 – Ashwin 2012-02-21 05:38:04

+0

也可以,但這很笨拙,你仍然需要將它包裝在JSTL''中以有條件地包含它。我只是用EL打印信息。它會在請求屬性出現時顯示,否則它不會顯示任何內容。像這樣' $ {message}' – BalusC 2012-02-21 05:43:11