1.getAttribute
是取得
jsp
中
用
setAttribute
設定的
attribute
2.parameter
得到的是
string
;
attribute
得到的是
object
3.request.getParameter()
方法傳遞的數據,會從
Web
客戶端傳到
Web
服務器端,代表
HTTP
請求數據;
request.setAttribute()
和
getAttribute()
方法傳遞的數據只會存在於
Web
容器內部,在具有轉發關係的
Web
組件之間共享。即
request.getAttribute()
方法返回
request
範圍內存在的對象,而
request.getParameter()
方法是獲取
http
提交過來的數據。
JSP
中
getParameter
與
getAttribute
有何區別?
——
說實話,這個問題當初我也困惑很久,我也知道怎麼用,可是到底有什麼區別,我也不是很清楚,後來找了很多資料才明白。昨天又有一位朋友問我這個問題,想我當初同樣也困惑過,於是我就把這個問題貼出來,讓同樣困惑的朋友解惑。
——getParameter
得到的都是
String
類型的。或者是
http://a.jsp?id=123
中的
123
,或者是某個表單提交過去的數據。
——getAttribute
則可以是對象。
——getParameter()
是獲取
POST/GET
傳遞的參數值;
——getAttribute()
是獲取對象容器中的數據值;
——getParameter
:用於客戶端重定向時,即點擊了鏈接或提交按扭時傳值用,即用於在用表單或
url
重定向傳值時接收數據用。
——getAttribute
:用於服務器端重定向時,即在
sevlet
中使用了
forward
函數
,
或
struts
中使用了
mapping.findForward
。
getAttribute
只能收到程序用
setAttribute
傳過來的值。
——getParameter()
是獲取
POST/GET
傳遞的參數值;
——getAttribute()
是獲取
SESSION
的值;
另外,可以用
setAttribute,getAttribute
發送接收對象
.
而
getParameter
顯然只能傳字符串。
setAttribute
是應用服務器把這個對象放在該頁面所對應的一塊內存中去,當你的頁面服務器重定向到另一個頁面時,應用服務器會把這塊內存拷貝另一個頁面所對應的內存中。這樣
getAttribute
就能取得你所設下的值,當然這種方法可以傳對象。
session
也一樣,只是對象在內存中的生命週期不一樣而已。
getParameter
只是應用服務器在分析你送上來的
request
頁面的文本時,取得你設在表單或
url
重定向時的值。
getParameter
返回的是
String,
用於讀取提交的表單中的值
;
getAttribute
返回的是
Object
,需進行轉換
,
可用
setAttribute
設置成任意對象,使用很靈活,可隨時用;
轉載自http://liuxinzhi19820615.spaces.live.com/blog/cns!ec1eda94e59cd947!729.entry