一、application
????作用于整個web項目众弓,項目啟時創(chuàng)建恩溅,項目關(guān)閉時銷毀,由項目創(chuàng)建保存于服務器內(nèi)存中 谓娃。
? ? 因此application可以實現(xiàn)多個用戶之間的數(shù)據(jù)共享
全部方法見?application方法大全?
內(nèi)置對象作用域:
二脚乡、cookie
? ??什么是cookies??
????大家都知道滨达,瀏覽器與WEB服務器之間是使用HTTP協(xié)議進行通信的奶稠,當某個用戶發(fā)出頁面請求時,WEB服務器只是簡單的進行響應捡遍,然后就關(guān)閉與該用戶的連接锌订。因此當一個請求發(fā)送到WEB服務器時,無論其是否是第一次來訪稽莉,服務器都會把它當作第一次來對待瀑志,這樣的不好之處可想而知。為了彌補這個缺陷污秆,Netscape開發(fā)出了cookie這個有效的工具來保存某個用戶的識別信息劈猪,因此人們昵稱為“小甜餅”。cookies是一種WEB服務器通過瀏覽器在訪問者的硬盤上存儲信息的手段.
????Cookie在遠程瀏覽器端存儲數(shù)據(jù)并以此跟蹤和識別用戶的機制良拼。從實現(xiàn)上說战得,Cookie是存儲在客戶端上的一小段數(shù)據(jù),瀏覽器(即客戶端)通過HTTP協(xié)議和服務器端進行Cookie交互庸推。
???? Cooke獨立于語言存在常侦,嚴格地說浇冰,Cookie并不是由PHP、Java等語言實現(xiàn)的聋亡,而是由這些語言對Cookie進行間接操作肘习,即發(fā)送HTTP指令,瀏覽器收到指令便操作Cookie并返回給服務器坡倔。因此漂佩,Cookie是由瀏覽器實現(xiàn)和管理的。? ?
? ? 當我們連接web項目并獲得響應時罪塔,會自動生成cookie(session基于cookie實現(xiàn)投蝉,在session創(chuàng)建完成后當響應時客戶端時會將session id隨著響應發(fā)送給cookie儲存起來)。
? ? ?當我們發(fā)送請求時征堪,如果session建立完成瘩缆,就已經(jīng)響應,那么此時響應里沒有session id 當session建立完成后如果再發(fā)送請求佃蚜,響應時session id此時會隨著響應一起發(fā)送給客戶端cookie.由此說明庸娱,響應并不是必須有session才能響應。
? ? 平時瀏覽器上自帶的存儲賬號密碼功能使用的cookie并不是自動生成的cookie而是當用戶選擇保存后谐算,瀏覽器預先寫好的代碼執(zhí)行創(chuàng)建一個額外的cookie用來保存賬號密碼涌韩,與瀏覽器自動生成的不是同一個。
實際應用:
創(chuàng)建: ?Cookie newCookie = new Cookie(String key, String value);?
寫入:response.addCookie(newCookie);?
讀嚷纫摹:Cookie[] cookies = request.getCookies();?
方法:1.setMaxAge(mm) 設置cookie有效期,單位秒
? ? ? ? ? 2.int getMaxAge(); 獲取cookie有效期靶擦,單位秒?
? ? ? ? ? 3.setValue(String value),對cookie進行賦值
? ? ? ? ? 4.String getValue(); 獲取cookie值
? ? ? ? ? 5.String getName(); 獲取cookie名稱
????服務器建立cookie腮考,會隨著response發(fā)送到前臺,所以建立cookie后添加至response,當客戶端請求后服務器響應時發(fā)送到客戶端玄捕。
????當對服務器發(fā)送請求時會將session及cookie自動發(fā)送過去踩蔚,然后后臺使用request獲取。?