2013-02-24 21 views
7

我正在學習JSP,其中我創建了一個login.jspregister.jsp。一旦註冊頁面中的表單提交,我將提交RegisterUser.java (SERVLET)中的所有值,然後通過dopost後來寫入數據庫。現在我需要將login.jsp中的另一個表單提交給同一個servlet RegisterUser.java (SERVLET)。如何在servlet中創建多個dopost。如果創建servlet將如何識別。請給我詳細的解釋。提前致謝。在JSP中向同一個servlet提交兩個或多個表單

+0

我想你是對'POST'方法有點困惑。你可以在同一個'servlet'上有任何形式的'POST',沒有任何改變。 – kaysush 2013-02-24 17:02:51

+0

然後,servlet如何識別我從哪個表單提交。在兩種形式中,我可以爲txtbox rit使用相同的名稱? – 2013-02-24 17:04:17

回答

11

看一個servlet只能有一個doPost方法。現在,它由你來決定提交哪個表單。您可以使用不同形式的具有相同名稱但不同值的隱藏字段,並使用此值可以計算出doPost方法。

String hiddenParam=request.getParameter("Parameter-Name") 
if(hiddenParam.equals("value1"){ 
//form 1 was posted 
}else if(hiddenParam.equals("value2"){ 
    //form 2 was posted 
} 

在-事實上,如果你正在使用Java 7你可以有Stringswitch縮短了代碼

switch(hiddenParam){ 
    case "value1": 
    //form 1 was posted 
    break; 
    case "value2": 
    //form 2 was posted 
    break; 
} 
+0

超好看! – 2013-02-24 17:21:22

+4

高興地幫助:)。 – kaysush 2013-02-24 17:21:45

4
create a field 
in login form 
<input type="hidden" name="pageName" values="login"/> 
in register form 
<input type="hidden" name="pageName" values="register"/> 

now in your servlet dopost method 
check 
if(request.getParameter("pageName").equals("login")) 
{ 
// do login code here 
} 
if(request.getParameter("pageName").equals("register")) 
{ 
// do register code here 
} 
+0

+1謝謝你的努力。雖然它很好用,但我喜歡蘇庫先生髮布答案的方式。 – 2013-02-24 17:22:03

+0

:) :) :),其實它同樣的方法來傳遞一個參數的形式名稱,我的榮幸,如果它有幫助 – 2013-02-24 17:45:46

相關問題