jsp ページでテキスト入力を読み取る最良の方法を教えてください。VS で区切られた 2 つの Java コードの違いは何ですか?
<input type=text id=myInput value="myInput">
<%
String data = request.getParameter("myinput");
//VS
request.setAttribute("myInput", data);
%>
jsp ページでテキスト入力を読み取る最良の方法を教えてください。VS で区切られた 2 つの Java コードの違いは何ですか?
<input type=text id=myInput value="myInput">
<%
String data = request.getParameter("myinput");
//VS
request.setAttribute("myInput", data);
%>
attribute
リクエストとの違いが欲しいと思いますparameter
。
リクエストparameter
は常にa String
(つまり、String
「1」、「1.1」、「true」などのように常に偶数の整数、ブール値、浮動小数点数で表されます)であり、次のような特定のURLにありhttp://google.com/search?q=question&cat=images
q
ます。それぞれとです。これはリクエストの例です。
リクエストパラメータは、htmlを介して送信されたものになります。cat
parameters
query parameters
question
images
GET
POST
<form>
現在、リクエストattributes
は。ではなくオブジェクトですparameters
。request.setAttribute("myInput", data);
そして、それらの値は、ここで使用することによってのみ設定data
できます。クラスString
のインスタンスまたはオブジェクトなど、つまりオブジェクトです。Person
data
また、もう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()
)から値を読み取ります。
これがあなたが望んでいたものではない場合は私に知らせてください。