2013-01-12 90 views
1

1.here是我的表單代碼:枚舉在sevlet

<form method="GET" action="Add"> 
first-name: <input type="text" name="first-name" value=""/><br/> 
last-name: <input type="text" name="last-name" value=""/><br/> 
email-id: <input type="text" name="email" value=""/><br/> 
<input type="submit" name="submit" value="join now"/><br/> 
</form> 

2.here是servlet的片段:

Enumeration<String> en=request.getParameterNames(); 

    while(en.hasMoreElements()){ 
     String param=en.nextElement(); 
     PrintWriter pw=response.getWriter(); 
     pw.print(param); 
     pw.println(request.getParameter(param)); 

這裏是輸出:

first-namevishal 
[email protected] 
submitjoin now 
last-nameanand 

爲何不能按順序獲取? 姓名必須過後再發郵件提交一定要過來吧?

回答

1

這不是特定於servlet的東西。所有服務器端技術的行爲與html表單數據由鍵值對組成的行爲相同。如果您有任何期望訂單來的邏輯,您可能需要重新審視它。通常,以什麼順序收到數據並沒有什麼不同,您收到的內容更重要。

+0

感謝您的幫助:) –

1

參數存儲在一個Map(最可能是一個HashMap)中,並且不能保證HshMap中的項目順序。這是物品按鍵的哈希排序。當您要求枚舉參數的名稱時,您可能無法按照它們插入地圖的順序返回它們。你不應該依賴這個順序在你的servlet中。

關於這個question的HashMap中的項目的順序有一些討論。

+0

感謝您的幫助:) –