對cookie和session的幾個(gè)問答

寫在前面

cookie和session的區(qū)別:

1累提、cookie數(shù)據(jù)存放在客戶的瀏覽器上兼耀,session數(shù)據(jù)放在服務(wù)器上。

2炕倘、cookie不是很安全钧大,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙

考慮到安全應(yīng)當(dāng)使用session。

3罩旋、session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上啊央。當(dāng)訪問增多,會(huì)比較占用你服務(wù)器的性能

考慮到減輕服務(wù)器性能方面涨醋,應(yīng)當(dāng)使用COOKIE瓜饥。

4、單個(gè)cookie保存的數(shù)據(jù)不能超過4K东帅,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie压固。

5、所以個(gè)人建議:

將登陸信息等重要信息存放為SESSION

其他信息如果需要保留靠闭,可以放在COOKIE中

*************************************************************************************

一帐我、cookie機(jī)制和session機(jī)制的區(qū)別

*************************************************************************************

具體來說cookie機(jī)制采用的是在客戶端保持狀態(tài)的方案,而session機(jī)制采用的是在服務(wù)器端保持狀態(tài)的方案愧膀。

同時(shí)我們也看到拦键,由于才服務(wù)器端保持狀態(tài)的方案在客戶端也需要保存一個(gè)標(biāo)識(shí),所以session機(jī)制可能需要借助于cookie機(jī)制來達(dá)到保存標(biāo)識(shí)的目的檩淋,但實(shí)際上還有其他選擇

*************************************************************************************

二芬为、會(huì)話cookie和持久cookie的區(qū)別

*************************************************************************************

如果不設(shè)置過期時(shí)間萄金,則表示這個(gè)cookie生命周期為瀏覽器會(huì)話期間,只要關(guān)閉瀏覽器窗口媚朦,cookie就消失了氧敢。這種生命期為瀏覽會(huì)話期的cookie被稱為會(huì)話cookie。會(huì)話cookie一般不保存在硬盤上而是保存在內(nèi)存里询张。

如果設(shè)置了過期時(shí)間孙乖,瀏覽器就會(huì)把cookie保存到硬盤上,關(guān)閉后再次打開瀏覽器份氧,這些cookie依然有效直到超過設(shè)定的過期時(shí)間唯袄。

存儲(chǔ)在硬盤上的cookie可以在不同的瀏覽器進(jìn)程間共享,比如兩個(gè)IE窗口蜗帜。而對于保存在內(nèi)存的cookie恋拷,不同的瀏覽器有不同的處理方式。

*************************************************************************************

三厅缺、如何利用實(shí)現(xiàn)自動(dòng)登錄

*************************************************************************************

當(dāng)用戶在某個(gè)網(wǎng)站注冊后蔬顾,就會(huì)收到一個(gè)惟一用戶ID的cookie∠嫔樱客戶后來重新連接時(shí)阎抒,這個(gè)

用戶ID會(huì)自動(dòng)返回,服務(wù)器對它進(jìn)行檢查消痛,確定它是否為注冊用戶且選擇了自動(dòng)登錄,從而使用戶務(wù)需給出明確的用戶名和密碼都哭,就可以訪問服務(wù)器上的資源秩伞。

*************************************************************************************

四、如何根據(jù)用戶的愛好定制站點(diǎn)

*************************************************************************************

網(wǎng)站可以使用cookie記錄用戶的意愿欺矫。對于簡單的設(shè)置纱新,網(wǎng)站可以直接將頁面的設(shè)置存儲(chǔ)在cookie中完成定制。然而對于更復(fù)雜的定制穆趴,網(wǎng)站只需僅將一個(gè)惟一的標(biāo)識(shí)符發(fā)送給用戶脸爱,由服務(wù)器端的數(shù)據(jù)庫存儲(chǔ)每個(gè)標(biāo)識(shí)符對應(yīng)的頁面設(shè)置。

*************************************************************************************

五未妹、cookie的發(fā)送

*************************************************************************************

1.創(chuàng)建Cookie對象

2.設(shè)置最大時(shí)效

3.將Cookie放入到HTTP響應(yīng)報(bào)頭

如果你創(chuàng)建了一個(gè)cookie簿废,并將他發(fā)送到瀏覽器,默認(rèn)情況下它是一個(gè)會(huì)話級別的cookie:存儲(chǔ)在瀏覽器的內(nèi)存中络它,用戶退出瀏覽器之后被刪除族檬。如果你希望瀏覽器將該cookie存儲(chǔ)在磁盤上,則需要使用maxAge化戳,并給出一個(gè)以秒為單位的時(shí)間单料。將最大時(shí)效設(shè)為0則是命令瀏覽器刪除該cookie。發(fā)送cookie需要使用HttpServletResponse的addCookie方法,將cookie插入到一個(gè)Set-CookieHTTP請 求報(bào)頭中扫尖。由于這個(gè)方法并不修改任何之前指定的Set-Cookie報(bào)頭白对,而是創(chuàng)建新的報(bào)頭,因此我們將這個(gè)方法稱為是addCookie换怖,而非setCookie甩恼。同樣要記住響應(yīng)報(bào)頭必須在任何文檔內(nèi)容發(fā)送到客戶端之前設(shè)置。

六狰域、cookie的讀取

*************************************************************************************

1.調(diào)用request.getCookie

要獲取有瀏覽器發(fā)送來的cookie媳拴,需要調(diào)用HttpServletRequest的getCookies方法,這個(gè)調(diào)用返回Cookie對象的數(shù)組兆览,對應(yīng)由HTTP請求中Cookie報(bào)頭輸入的值屈溉。

2.對數(shù)組進(jìn)行循環(huán),調(diào)用每個(gè)cookie的getName方法抬探,直到找到感興趣的cookie為止

cookie與你的主機(jī)(域)相關(guān)子巾,而非你的servlet或JSP頁面。因而小压,盡管你的servlet可能只發(fā)送了單個(gè)cookie线梗,你也可能會(huì)得到許多不相關(guān)的cookie。

例如:

String cookieName = “userID”;

Cookie cookies[] =request.getCookies();

if (cookies!=null){

for(int i=0;i

Cookie cookie = cookies[i];

if(cookieName.equals(cookie.getName())){

doSomethingWith(cookie.getValue());

}

}

}

*************************************************************************************

七怠益、如何使用cookie檢測初訪者

*************************************************************************************

A.調(diào)用HttpServletRequest.getCookies()獲取Cookie數(shù)組

B.在循環(huán)中檢索指定名字的cookie是否存在以及對應(yīng)的值是否正確

C.如果是則退出循環(huán)并設(shè)置區(qū)別標(biāo)識(shí)

D.根據(jù)區(qū)別標(biāo)識(shí)判斷用戶是否為初訪者從而進(jìn)行不同的操作

*************************************************************************************

八仪搔、使用cookie檢測初訪者的常見錯(cuò)誤

*************************************************************************************

不能僅僅因?yàn)閏ookie數(shù)組中不存在在特定的數(shù)據(jù)項(xiàng)就認(rèn)為用戶是個(gè)初訪者。如果cookie數(shù)組為null蜻牢,客戶可能是一個(gè)初訪者烤咧,也可能是由于用戶將cookie刪除或禁用造成的結(jié)果。

但是抢呆,如果數(shù)組非null,也不過是顯示客戶曾經(jīng)到過你的網(wǎng)站或域煮嫌,并不能說明他們曾經(jīng)訪問過你的servlet。其它servlet抱虐、JSP頁面以及非Java Web應(yīng)用都可以設(shè)置cookie昌阿,依據(jù)路徑的設(shè)置,其中的任何cookie都有可能返回給用戶的瀏覽器恳邀。

正確的做法是判斷cookie數(shù)組是否為空且是否存在指定的Cookie對象且值正確懦冰。

*************************************************************************************

九、使用cookie屬性的注意問題

*************************************************************************************

屬性是從服務(wù)器發(fā)送到瀏覽器的報(bào)頭的一部分谣沸;但它們不屬于由瀏覽器返回給服務(wù)器的報(bào)頭儿奶。

因此除了名稱和值之外,cookie屬性只適用于從服務(wù)器輸出到客戶端的cookie鳄抒;服務(wù)器端來自于瀏覽器的cookie并沒有設(shè)置這些屬性闯捎。

因而不要期望通過request.getCookies得到的cookie中可以使用這個(gè)屬性椰弊。這意味著,你不能僅僅通過設(shè)置cookie的最大時(shí) 效瓤鼻,發(fā)出它秉版,在隨后的輸入數(shù)組中查找適當(dāng)?shù)腸ookie,讀取它的值,修改它并將它存回Cookie茬祷,從而實(shí)現(xiàn)不斷改變的cookie值清焕。

*************************************************************************************

十、如何使用cookie記錄各個(gè)用戶的訪問計(jì)數(shù)

*************************************************************************************

1.獲取cookie數(shù)組中專門用于統(tǒng)計(jì)用戶訪問次數(shù)的cookie的值

2.將值轉(zhuǎn)換成int型

3.將值加1并用原來的名稱重新創(chuàng)建一個(gè)Cookie對象

4.重新設(shè)置最大時(shí)效

5.將新的cookie輸出

*************************************************************************************

十一祭犯、session在不同環(huán)境下的不同含義

*************************************************************************************

session秸妥,中文經(jīng)常翻譯為會(huì)話,其本來的含義是指有始有終的一系列動(dòng)作/消息沃粗,比如打電話是從拿起電話撥號(hào)到掛斷電話這中間的一系列過程可以稱之為一個(gè)session粥惧。

然而當(dāng)session一詞與網(wǎng)絡(luò)協(xié)議相關(guān)聯(lián)時(shí),它又往往隱含了“面向連接”和/或“保持狀態(tài)”這樣兩個(gè)含義最盅。

session在Web開發(fā)環(huán)境下的語義又有了新的擴(kuò)展突雪,它的含義是指一類用來在客戶端與服務(wù)器端之間保持狀態(tài)的解決方案。有時(shí)候Session也用來指這種解決方案的存儲(chǔ)結(jié)構(gòu)涡贱。

*************************************************************************************

十二咏删、session的機(jī)制

*************************************************************************************

session機(jī)制是一種服務(wù)器端的機(jī)制,服務(wù)器使用一種類似于散列表的結(jié)構(gòu)(也可能就是使用散列表)來保存信息问词。但程序需要為某個(gè)客戶端的請求創(chuàng)建一個(gè)session的時(shí)候督函,服務(wù)器首先檢查這個(gè)客戶端的請求里是否包含了一個(gè)session標(biāo)識(shí)-稱為session id,如果已經(jīng)包含一個(gè)session id則說明以前已經(jīng)為此客戶創(chuàng)建過session,服務(wù)器就按照session id把這個(gè)session檢索出來使用(如果檢索不到激挪,可能會(huì)新建一個(gè)侨核,這種情況可能出現(xiàn)在服務(wù)端已經(jīng)刪除了該用戶對應(yīng)的session對象,但用戶人為地在請求的URL后面附加上一個(gè)JSESSION的參數(shù))灌灾。

如果客戶請求不包含session id,則為此客戶創(chuàng)建一個(gè)session并且生成一個(gè)與此session相關(guān)聯(lián)的session id悲柱,這個(gè)session id將在本次響應(yīng)中返回給客戶端保存锋喜。

*************************************************************************************

十三、保存session

id的幾種方式

*************************************************************************************

A.保存session id的方式可以采用cookie豌鸡,這樣在交互過程中瀏覽器可以自動(dòng)的按照規(guī)則把這個(gè)標(biāo)識(shí)發(fā)送給服務(wù)器嘿般。

B.由于cookie可以被人為的禁止,必須有其它的機(jī)制以便在cookie被禁止時(shí)仍然能夠把session id傳遞回服務(wù)器涯冠,經(jīng)常采用的一種技術(shù)叫做URL重寫炉奴,就是把session id附加在URL路徑的后面,附加的方式也有兩種蛇更,一種是作為URL路徑的附加信息瞻赶,另一種是作為查詢字符串附加在URL后面赛糟。網(wǎng)絡(luò)在整個(gè)交互過程中始終保持狀態(tài),就必須在每個(gè)客戶端可能請求的路徑后面都包含這個(gè)session id砸逊。

C.另一種技術(shù)叫做表單隱藏字段璧南。就是服務(wù)器會(huì)自動(dòng)修改表單,添加一個(gè)隱藏字段师逸,以便在表單提交時(shí)能夠把session

id傳遞回服務(wù)器司倚。

*************************************************************************************

十四、session什么時(shí)候被創(chuàng)建

*************************************************************************************

一個(gè)常見的錯(cuò)誤是以為session在有客戶端訪問時(shí)就被創(chuàng)建篓像,然而事實(shí)是直到某server端程序(如Servlet)調(diào)用HttpServletRequest.getSession(true)這樣的語句時(shí)才會(huì)被創(chuàng)建动知。

*************************************************************************************

十五、session何時(shí)被刪除

*************************************************************************************

session在下列情況下被刪除:

A.程序調(diào)用HttpSession.invalidate()

B.距離上一次收到客戶端發(fā)送的session id時(shí)間間隔超過了session的最大有效時(shí)間

C.服務(wù)器進(jìn)程被停止

再次注意關(guān)閉瀏覽器只會(huì)使存儲(chǔ)在客戶端瀏覽器內(nèi)存中的session cookie失效员辩,不會(huì)使服務(wù)器端的session對象失效盒粮。

*************************************************************************************

十六、URL重寫有什么缺點(diǎn)

*************************************************************************************

對所有的URL使用URL重寫屈暗,包括超鏈接拆讯,form的action,和重定向的URL养叛。每個(gè)引用你的站點(diǎn)的URL种呐,以及那些返回給用戶的URL(即使通過間接手段,比如服務(wù)器重定向中的Location字段)都要添加額外的信息弃甥。

這意味著在你的站點(diǎn)上不能有任何靜態(tài)的HTML頁面(至少靜態(tài)頁面中不能有任何鏈接到站點(diǎn)動(dòng)態(tài)頁面的鏈接)爽室。因此,每個(gè)頁面都必須使用servlet或JSP動(dòng)態(tài)生成淆攻。即使所有的頁面都動(dòng)態(tài)生成阔墩,如果用戶離開了會(huì)話并通過書簽或鏈接再次回來,會(huì)話的信息都會(huì)丟失瓶珊,因?yàn)榇鎯?chǔ)下來的鏈接含有錯(cuò)誤的標(biāo)識(shí)信息-該URL后面的SESSION ID已經(jīng)過期了啸箫。

*************************************************************************************

十七、使用隱藏的表單域有什么缺點(diǎn)

*************************************************************************************

僅當(dāng)每個(gè)頁面都是有表單提交而動(dòng)態(tài)生成時(shí)伞芹,才能使用這種方法忘苛。單擊常規(guī)的超文本鏈接并不產(chǎn)生表單提交,因此隱藏的表單域不能支持通常的會(huì)話跟蹤唱较,只能用于一系列特定的操作中扎唾,比如在線商店的結(jié)賬過程

*************************************************************************************

十八、會(huì)話跟蹤的基本步驟

*************************************************************************************

1.訪問與當(dāng)前請求相關(guān)的會(huì)話對象

2.查找與會(huì)話相關(guān)的信息

3.存儲(chǔ)會(huì)話信息

4.廢棄會(huì)話數(shù)據(jù)

*************************************************************************************

十九南缓、getSession()/getSession(true)胸遇、getSession(false)的區(qū)別

*************************************************************************************

getSession()/getSession(true):當(dāng)session存在時(shí)返回該session,否則新建一個(gè)session并返回該對象

getSession(false):當(dāng)session存在時(shí)返回該session汉形,否則不會(huì)新建session纸镊,返回null

*************************************************************************************

二十倍阐、如何將信息于會(huì)話關(guān)聯(lián)起來

*************************************************************************************

setAttribute會(huì)替換任何之前設(shè)定的值;如果想要在不提供任何代替的情況下移除某個(gè)值薄腻,則應(yīng)使用removeAttribute收捣。這個(gè)方法會(huì)觸發(fā)所有實(shí)現(xiàn)了HttpSessionBindingListener接口的值的valueUnbound

方法。

*************************************************************************************

二十一庵楷、會(huì)話屬性的類型有什么限制嗎

*************************************************************************************

通常會(huì)話屬性的類型只要是Object就可以了罢艾。除了null或基本類型,如int,double,boolean尽纽。

如果要使用基本類型的值作為屬性咐蚯,必須將其轉(zhuǎn)換為相應(yīng)的封裝類對象

*************************************************************************************

二十二、如何廢棄會(huì)話數(shù)據(jù)

*************************************************************************************

A.只移除自己編寫的servlet創(chuàng)建的數(shù)據(jù):

調(diào)用removeAttribute(“key”)將指定鍵關(guān)聯(lián)的值廢棄

B.刪除整個(gè)會(huì)話(在當(dāng)前Web應(yīng)用中):

調(diào)用invalidate弄贿,將整個(gè)會(huì)話廢棄掉春锋。這樣做會(huì)丟失該用戶的所有會(huì)話數(shù)據(jù),而非僅僅由我們

servlet或JSP頁面創(chuàng)建的會(huì)話數(shù)據(jù)

C.將用戶從系統(tǒng)中注銷并刪除所有屬于他(或她)的會(huì)話

調(diào)用logOut差凹,將客戶從Web服務(wù)器中注銷期奔,同時(shí)廢棄所有與該用戶相關(guān)聯(lián)的會(huì)話(每個(gè)Web應(yīng)用至多一個(gè))。這個(gè)操作有可能影響到服務(wù)器上多個(gè)不同的Web應(yīng)用

*************************************************************************************

二十三危尿、使用isNew來判斷用戶是否為新舊用戶的錯(cuò)誤做法

*************************************************************************************

public boolean isNew()方法如果會(huì)話尚未和客戶程序(瀏覽器)發(fā)生任何聯(lián)系呐萌,則這個(gè)方法返回true,這一般是因?yàn)闀?huì)話是新建的谊娇,不是由輸入的客戶請求所引起的肺孤。

但如果isNew返回false,只不過是說明他之前曾經(jīng)訪問該Web應(yīng)用济欢,并不代表他們曾訪問過我們的servlet或JSP頁面赠堵。

因?yàn)閟ession是與用戶相關(guān)的,在用戶之前訪問的每一個(gè)頁面都有可能創(chuàng)建了會(huì)話法褥。因此isNew為false只能說用戶之前訪問過該Web應(yīng)用茫叭,session可以是當(dāng)前頁面創(chuàng)建,也可能是由用戶之前訪問過的頁面創(chuàng)建的半等。

正確的做法是判斷某個(gè)session中是否存在某個(gè)特定的key且其value是否正確

*************************************************************************************

二十四揍愁、Cookie的過期和Session的超時(shí)有什么區(qū)別

*************************************************************************************

會(huì)話的超時(shí)由服務(wù)器來維護(hù),它不同于Cookie的失效日期酱鸭。首先,會(huì)話一般基于駐留內(nèi)存的cookie不是持續(xù)性的cookie垛吗,因而也就沒有截至日期凹髓。即使截取到JSESSIONID cookie,并為它設(shè)定一個(gè)失效日期發(fā)送出去怯屉。瀏覽器會(huì)話和服務(wù)器會(huì)話也會(huì)截然不同蔚舀。

*************************************************************************************

二十五饵沧、session

cookie和session對象的生命周期是一樣的嗎

*************************************************************************************

當(dāng)用戶關(guān)閉了瀏覽器雖然session cookie已經(jīng)消失,但session對象仍然保存在服務(wù)器端

*************************************************************************************

二十六赌躺、是否只要關(guān)閉瀏覽器狼牺,session就消失了

*************************************************************************************

程序一般都是在用戶做log off的時(shí)候發(fā)個(gè)指令去刪除session,然而瀏覽器從來不會(huì)主動(dòng)在關(guān)閉之前通知服務(wù)器它將要被關(guān)閉礼患,因此服務(wù)器根本不會(huì)有機(jī)會(huì)知道瀏覽器已經(jīng)關(guān)閉是钥。服務(wù)器會(huì)一直保留這個(gè)會(huì)話對象直到它處于非活動(dòng)狀態(tài)超過設(shè)定的間隔為止。

之所以會(huì)有這種錯(cuò)誤的認(rèn)識(shí)缅叠,是因?yàn)榇蟛糠謘ession機(jī)制都使用會(huì)話cookie來保存session id悄泥,而關(guān)閉瀏覽器后這個(gè)session id就消失了,再次連接到服務(wù)器時(shí)也就無法找到原來的session肤粱。

如果服務(wù)器設(shè)置的cookie被保存到硬盤上弹囚,或者使用某種手段改寫瀏覽器發(fā)出的HTTP請求報(bào)頭,把原來的session id發(fā)送到服務(wù)器领曼,則再次打開瀏覽器仍然能夠找到原來的session鸥鹉。

恰恰是由于關(guān)閉瀏覽器不會(huì)導(dǎo)致session被刪除,迫使服務(wù)器為session設(shè)置了一個(gè)失效時(shí)間庶骄,當(dāng)距離客戶上一次使用session的時(shí)間超過了這個(gè)失效時(shí)間時(shí)毁渗,服務(wù)器就可以認(rèn)為客戶端已經(jīng)停止了活動(dòng),才會(huì)把session刪除以節(jié)省存儲(chǔ)空間瓢姻。

由此我們可以得出如下結(jié)論:

關(guān)閉瀏覽器祝蝠,只會(huì)是瀏覽器端內(nèi)存里的session cookie消失,但不會(huì)使保存在服務(wù)器端的session對象消失幻碱,同樣也不會(huì)使已經(jīng)保存到硬盤上的持久化cookie消失绎狭。

*************************************************************************************

二十七、打開兩個(gè)瀏覽器窗口訪問應(yīng)用程序會(huì)使用同一個(gè)session還是不同的session

*************************************************************************************

通常session cookie是不能跨窗口使用的褥傍,當(dāng)你新開了一個(gè)瀏覽器窗口進(jìn)入相同頁面時(shí)儡嘶,系統(tǒng)會(huì)賦予你一個(gè)新的session id,這樣我們信息共享的目的就達(dá)不到了恍风。

此時(shí)我們可以先把session id保存在persistent

cookie中(通過設(shè)置session的最大有效時(shí)間)蹦狂,然后在新窗口中讀出來,就可以得到上一個(gè)窗口的session id了朋贬,這樣通過session cookie和persistent cookie的結(jié)合我們就可以實(shí)現(xiàn)了跨窗口的會(huì)話跟蹤凯楔。

*************************************************************************************

二十八、如何使用會(huì)話顯示每個(gè)客戶的訪問次數(shù)

*************************************************************************************

由于客戶的訪問次數(shù)是一個(gè)整型的變量锦募,但session的屬性類型中不能使用int摆屯,double,boolean等基本類型的變量糠亩,所以我們要用到這些基本類型的封裝類型對象作為session對象中屬性的值

但像Integer是一種不可修改(Immutable)的數(shù)據(jù)結(jié)構(gòu):構(gòu)建后就不能更改虐骑。這意味著每個(gè)請求都必須創(chuàng)建新的Integer對象准验,之后使用setAttribute來代替之前存在的老的屬性的值。例如:

HttpSession session = request.getSession();

SomeImmutalbeClass value =(SomeImmutableClass)session.getAttribute(“SomeIdentifier”);

if (value= =null){

value = new SomeImmutableClass(…);//新創(chuàng)建一個(gè)不可更改對象

}else{

value = newSomeImmutableClass(calculatedFrom(value)); //對value重新計(jì)算后創(chuàng)建新的對象

}

session.setAttribute(“someIdentifier”,value); //使用新創(chuàng)建的對象覆蓋原來的老的對象

*************************************************************************************

二十九廷没、如何使用會(huì)話累計(jì)用戶的數(shù)據(jù)

*************************************************************************************

使用可變的數(shù)據(jù)結(jié)構(gòu)糊饱,比如數(shù)組、List颠黎、Map或含有可寫字段的應(yīng)用程序?qū)S械臄?shù)據(jù)結(jié)構(gòu)另锋。通過這種方式,除非首次分配對象盏缤,否則不需要調(diào)用setAttribute砰蠢。例如

HttpSessionsession = request.getSession();

SomeMutableClass value = (SomeMutableClass)session.getAttribute(“someIdentifier”);

if(value = = null){

value = new SomeMutableClass(…);

session.setAttribute(“someIdentifier”,value);

}else{

value.updateInternalAttribute(…);//如果已經(jīng)存在該對象則更新其屬性而不需重新設(shè)置屬性

}

*************************************************************************************

三十、不可更改對象和可更改對象在會(huì)話數(shù)據(jù)更新時(shí)的不同處理

*************************************************************************************

不可更改對象因?yàn)橐坏﹦?chuàng)建之后就不能更改唉铜,所以每次要修改會(huì)話中屬性的值的時(shí)候台舱,都需要

調(diào)用setAttribute(“someIdentifier”,newValue)來代替原有的屬性的值,否則屬性的值不會(huì)被更新

可更改對象因?yàn)槠渥陨硪话闾峁┝诵薷淖陨韺傩缘姆椒ㄌ读鳎悦看我薷臅?huì)話中屬性的值的時(shí)

候竞惋,只要調(diào)用該可更改對象的相關(guān)修改自身屬性的方法就可以了。這意味著我們就不需要調(diào)

用setAttribute方法了

*************************************************************************************

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末灰嫉,一起剝皮案震驚了整個(gè)濱河市拆宛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讼撒,老刑警劉巖浑厚,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異根盒,居然都是意外死亡钳幅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門炎滞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敢艰,“玉大人,你說我怎么就攤上這事册赛∧频迹” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵森瘪,是天一觀的道長牡属。 經(jīng)常有香客問我,道長扼睬,這世上最難降的妖魔是什么逮栅? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上证芭,老公的妹妹穿的比我還像新娘。我一直安慰自己担映,他們只是感情好废士,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蝇完,像睡著了一般官硝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上短蜕,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天氢架,我揣著相機(jī)與錄音,去河邊找鬼朋魔。 笑死岖研,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的警检。 我是一名探鬼主播孙援,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扇雕!你這毒婦竟也來了拓售?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤镶奉,失蹤者是張志新(化名)和其女友劉穎础淤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哨苛,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鸽凶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了移国。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吱瘩。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖迹缀,靈堂內(nèi)的尸體忽然破棺而出使碾,到底是詐尸還是另有隱情,我是刑警寧澤祝懂,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布票摇,位于F島的核電站,受9級特大地震影響砚蓬,放射性物質(zhì)發(fā)生泄漏矢门。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望祟剔。 院中可真熱鬧隔躲,春花似錦、人聲如沸物延。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叛薯。三九已至浑吟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耗溜,已是汗流浹背组力。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抖拴,地道東北人燎字。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像阿宅,于是被迫代替她去往敵國和親轩触。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容