1. 程式人生 > >getParameter 與 getAttribute的區別

getParameter 與 getAttribute的區別

request.getAttribute():是request時設定的變數的值,用request.setAttribute("name","您自己的值");來設定值,   
request.getParameter():提取傳送過來的引數如:本網頁http://community.csdn.net/Expert/topic/4633/4633804.xml?temp=.3488123  
request.getParameter("temp")==".3488123"
request.getParameter  
 是用來接受來自get方法或post方法的引數  
    <form     method=post>  
    <form     method=get>  
    <a     href="1.jsp?id=1">ok</a>  
 只能接受java.lang.String  
 也就是說String     hotel_id     =     request.getParameter("hotel_id");  
    request.getAttribute  
 是用來接受來自servlet的變數或Action(其實Action就是特殊的Servlet)  
 在Action中,request.setAttribute("ret",ret);  
 只能接受java.lang.Object  
 也就是說List     ret     =     (List)request.getAttribute("ret");  
  如果你只用JSP,根本用不到request.getAttribute()

request.getAttribute()和request.getParameter()的區別是request.getAttribute()獲得的是物件型別,

而request.getParameter()獲得的是字串型別
一般的網頁應用,如同     chenshaizi(陳紹彬)  所說,基本上是基於Post方式的傳遞,用getParameter

取值。對於自己控制的,可以通過request.setAttribute和getAttribute  實現值得傳遞。  
 對於應用Structs框架的,getAttribute用的多一點,其他的基本上用getParameter

我的理解:
session.getAttribute();獲得session
request.getParameter();獲得parameter

1.getParameter可以獲得客戶端傳送給伺服器端的引數值。   
    getAttribute可以得到由setAttribute設定的引數值,就相當於是使用getAttribute得到一個自己定義

的引數,而不是從客戶端得到的引數。
2.getParameter只能傳遞string型別的變數,getAttribute能傳遞vector。


getParameter(),獲取表單的值 getAttribute()獲得session的值
 

getParameterNames() 獲得表單或則url中的引數的陣列
getattributeNames():返回request物件所有屬性的名字,結果集是一個Enumeration(列舉)類的例項

根據樓上,是不是 getParameter()得到的值如果下次不提交或儲存起來的話,下次重定向後就沒啦?
:理解對了
getAttribute()所要得到的屬性值因為存在session中,所以重定向後仍可以取出?
getAttribute()在request和session中都有,只是作用域不同,在取之前肯定是要在某個地方存一下,這種

東東可以存取物件

串".1793177",
而getAttribute()之前,你必須在頁面或者邏輯中用serAttribute()設定了才能用,已經很清楚了,我不再

說了哈


Parameter是html裡傳來的像 checkbox textfield password radio...的value
getAttribute是取得jsp中用setAttribute設定的attribute

還有....
parameter得到的是string
attribute得到的是object