1

1.これが私のフォームコードです:

<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.サーブレットフラグメントは次のとおりです。

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
emaildrunkendeathison@gmail.com
submitjoin now
last-nameanand

なぜ順番にフェッチされないのですか?ファーストネームの後にラストネームが来なければならず、それからメールと送信が来なければなりませんよね?

4

2 に答える 2

1

パラメータはマップ(ほとんどの場合HashMap)に格納され、HshMap内のアイテムの順序は保証されません。つまり、アイテムはキーのハッシュによって順序付けられます。パラメータの名前の列挙を要求すると、それらがマップに挿入された順序で返されない場合があります。サーブレットでは、この順序に依存しないでください。

この質問では、HashMap内のアイテムの順序についていくつかの議論があります。

于 2013-01-12T11:07:09.597 に答える
1

これはサーブレットに固有のものではありません。すべてのサーバー側テクノロジーは、htmlフォームデータがキーと値のペアで構成されているのと同じように動作します。注文が来ることを期待するロジックがある場合は、それを再検討する必要があるかもしれません。一般に、データを受け取る順序に違いはありません。受け取るものの方が重要です。

于 2013-01-12T11:14:44.220 に答える