JSPのrequest属性の使い方を紹介します.



一、request.get Parameeter()とrequest.get Attribute()の違い
(1)レクサス.get Parameeter()取得は、コンテナの実装により、類似のpost,get等によってもたらされるデータを取得し、request.set.set Attribute()とget Attribute()は、ウェブコンテナの内部でのみ流通し、要求処理段階である.
(2)request.get Parameeter()方法で渡されるデータは、WebクライアントからWebサーバ端に送られ、HTTP要求データを表します.request.get Parameeter()方法はSteringタイプのデータを返します.
request.set Attribute()とget Attribute()メソッドによって伝達されるデータは、Webコンテナの内部にのみ存在します.
もう一つのポイントは、HttpServletRequest類にはset Attribute()の方法があり、set Parameeter()の方法がないということです.
一つの例を挙げると、2つのWEBページ間のリンク関係の場合、つまり1.jspから2.jspにリンクするとき、リンクされているのは2.jspです.
もし1.jspにあるなら
 
<form name="form1" method="post" action="2.jsp">
       :<input type="text" name="username">
<input type="submit" name="Submit" value="  ">
</form>
2.jspではrequest.get Parameter(「username」)方法で要求パラメータを取得します.
<%String username=request.get Parameter("username");>
しかし、2つのWEB間が転送関係の場合、転送先WEBは、getAttribute()方法で転送元WEBとrequest範囲内のデータを共有することができます.
1.jspと2.jspがあります
1.jspは現在のユーザー名を2.jspに伝えたいですが、どうやってこのデータを伝えますか?まず1.jspで以下のsetAttribute()の方法を呼び出します.
 
<%
String username=request.getParameter("username");
request.setAttribute("username",username);
%>

<jsp:forward page="2.jsp" />

 2.jsp   getAttribute()        :
<% String username=(String)request.getAttribute("username"); %>
二、request.get Attribute()とrequest.set Attribute()
request.getAttribute(「nameOfObj」)は、JSPページのフォーム内のコントロールのValueを得ることができます.実はフォームコントロールの中のObjectのnameとvalueは一つのハッシュテーブルに格納されているので、ここでObjectを与えるnameはハッシュテーブルの中にその対応するvalueを見つけることができる.
異なるページ間の転送値はrequest.set Attributeを使う時、a.jspからb.jspまで一回だけ伝えます.その後、このrequestはその作用範囲を失います.また、request.set Attributeを設定します.session.set Attributeを使うと、一つの過程でずっとこの値を保持します.
P.S.:JavaScriptとJSPでは値を相互に伝えられません.JavaScriptはクライアントで動作し、JSPはサーバー側で実行されます.それらの間にパラメータを相互に伝達するためには、JSPにhiddenコントロールを設定し、そのvalueを使用して上記の使用法に関連して必要な数値を伝達することができる.