2

jsp ページでテキスト入力を読み取る最良の方法を教えてください。VS で区切られた 2 つの Java コードの違いは何ですか?

  <input type=text id=myInput value="myInput">
  <%
        String data = request.getParameter("myinput");
   //VS
        request.setAttribute("myInput", data);  

  %>
4

1 に答える 1

2

attributeリクエストとの違いが欲しいと思いますparameter

リクエストparameterは常にa String(つまり、String「1」、「1.1」、「true」などのように常に偶数の整数、ブール値、浮動小数点数で表されます)であり、次のような特定のURLにありhttp://google.com/search?q=question&cat=images qます。それぞれとです。これはリクエストの例です。 リクエストパラメータは、htmlを介して送信されたものになります。catparametersquery parametersquestionimagesGETPOST<form>

現在、リクエストattributesは。ではなくオブジェクトですparametersrequest.setAttribute("myInput", data);そして、それらの値は、ここで使用することによってのみ設定dataできます。クラスStringのインスタンスまたはオブジェクトなど、つまりオブジェクトです。Persondata

また、もう1つの違いは、メソッドがないことrequest.setParameter("myinput", data);です。そのようなメソッドがないため、リクエストパラメータは、html<form>が送信されたとき、またはURLに上記のパラメータが含まれている場合にのみ設定されます。

今、parametersあなたはそれらを次のように得ることができます:

String data = request.getParameter("myinput");`

の値がまた"myInput"はである場合intでもboolean

属性の場合、次のように取得できます。

String data = (String) request.getAttribute("myInput");` // if "myInput" is a String
Person data = (Person) request.getAttribute("myInput");`  // if "myInput" is an instance of Person class
Long data = (Long) request.getAttribute("myInput");`  // if "myInput" is a Long

これで、2つのコードの違いがわかりました。一方はリクエストパラメータ(request.getParameter())から値を読み取り、もう一方はリクエスト属性(request.getAttribute())から値を読み取ります。

これがあなたが望んでいたものではない場合は私に知らせてください。

于 2013-01-14T16:41:14.397 に答える