一、application
????作用于整個web項目,項目啟時創(chuàng)建,項目關(guān)閉時銷毀,由項目創(chuàng)建保存于服務(wù)器內(nèi)存中 。
? ? 因此application可以實現(xiàn)多個用戶之間的數(shù)據(jù)共享
全部方法見?application方法大全?

內(nèi)置對象作用域:

二、cookie
? ??什么是cookies??
????大家都知道,瀏覽器與WEB服務(wù)器之間是使用HTTP協(xié)議進(jìn)行通信的,當(dāng)某個用戶發(fā)出頁面請求時,WEB服務(wù)器只是簡單的進(jìn)行響應(yīng),然后就關(guān)閉與該用戶的連接。因此當(dāng)一個請求發(fā)送到WEB服務(wù)器時,無論其是否是第一次來訪,服務(wù)器都會把它當(dāng)作第一次來對待,這樣的不好之處可想而知。為了彌補(bǔ)這個缺陷,Netscape開發(fā)出了cookie這個有效的工具來保存某個用戶的識別信息,因此人們昵稱為“小甜餅”。cookies是一種WEB服務(wù)器通過瀏覽器在訪問者的硬盤上存儲信息的手段.
????Cookie在遠(yuǎn)程瀏覽器端存儲數(shù)據(jù)并以此跟蹤和識別用戶的機(jī)制。從實現(xiàn)上說,Cookie是存儲在客戶端上的一小段數(shù)據(jù),瀏覽器(即客戶端)通過HTTP協(xié)議和服務(wù)器端進(jìn)行Cookie交互。
???? Cooke獨(dú)立于語言存在,嚴(yán)格地說,Cookie并不是由PHP、Java等語言實現(xiàn)的,而是由這些語言對Cookie進(jìn)行間接操作,即發(fā)送HTTP指令,瀏覽器收到指令便操作Cookie并返回給服務(wù)器。因此,Cookie是由瀏覽器實現(xiàn)和管理的。? ?
? ? 當(dāng)我們連接web項目并獲得響應(yīng)時,會自動生成cookie(session基于cookie實現(xiàn),在session創(chuàng)建完成后當(dāng)響應(yīng)時客戶端時會將session id隨著響應(yīng)發(fā)送給cookie儲存起來)。
? ? ?當(dāng)我們發(fā)送請求時,如果session建立完成,就已經(jīng)響應(yīng),那么此時響應(yīng)里沒有session id 當(dāng)session建立完成后如果再發(fā)送請求,響應(yīng)時session id此時會隨著響應(yīng)一起發(fā)送給客戶端cookie.由此說明,響應(yīng)并不是必須有session才能響應(yīng)。
? ? 平時瀏覽器上自帶的存儲賬號密碼功能使用的cookie并不是自動生成的cookie而是當(dāng)用戶選擇保存后,瀏覽器預(yù)先寫好的代碼執(zhí)行創(chuàng)建一個額外的cookie用來保存賬號密碼,與瀏覽器自動生成的不是同一個。
實際應(yīng)用:
創(chuàng)建: ?Cookie newCookie = new Cookie(String key, String value);?
寫入:response.addCookie(newCookie);?
讀?。篊ookie[] cookies = request.getCookies();?
方法:1.setMaxAge(mm) 設(shè)置cookie有效期,單位秒
? ? ? ? ? 2.int getMaxAge(); 獲取cookie有效期,單位秒?
? ? ? ? ? 3.setValue(String value),對cookie進(jìn)行賦值
? ? ? ? ? 4.String getValue(); 獲取cookie值
? ? ? ? ? 5.String getName(); 獲取cookie名稱
????服務(wù)器建立cookie,會隨著response發(fā)送到前臺,所以建立cookie后添加至response,當(dāng)客戶端請求后服務(wù)器響應(yīng)時發(fā)送到客戶端。
????當(dāng)對服務(wù)器發(fā)送請求時會將session及cookie自動發(fā)送過去,然后后臺使用request獲取。?