你聽說過Session嗎?
它是保存在服務(wù)器的一個標識,就想客戶電腦上的Cookie。我們常見的網(wǎng)站管理員和普通用戶之間就是用Session來區(qū)分的。
你所說的HttpSession是JSP中經(jīng)常使用的一個方法,準確的說,是Request中的一個方法,比如。
Session = request.getSession(true);
用于獲取Session
HttpSession 中可以跟蹤并儲存用戶信息,把值設(shè)置到屬性中,有2 個方法:
setAttribute(),getAttrribute();
例如:在一個方法中用session.setAttribute(“student”,student);在
session 中設(shè)置一個屬性名為student,值為一個名為student 的對象。而后可在
同一session 范圍內(nèi)用getAttribute(“student”)取出該屬性,得到student
對象。
HttpSession session=request.getSession();為什么不用response兒用request!
首先回答為什么分別是response和request這兩個內(nèi)置對象。
你得先明白你通過獲取對象是做什么用的,是往哪用的。
第一個PrintWriter out=response.getWriter()
是想獲得一個輸出流,用來響應(yīng)客戶端發(fā)出的請求。所以想響應(yīng)客戶端必須用response
第二個HttpSession session=request.getSession()
是從客戶端獲得一個session的對象,這個對象包含客戶端持有的相關(guān)信息用來區(qū)別每個客戶端.既然是從客戶端就必須用請求對象來獲取,因為一般都是客戶端向服務(wù)器端發(fā)出的一個請求.所以用request對象。
Cookie和session這個得分開來說
兩個都可以用來存私密的東西,同樣也都有有效期的說法。
區(qū)別在于。
session是放在服務(wù)器上的,過期與否取決于服務(wù)期的設(shè)定,cookie是存在客戶端的,過去與否可以在cookie生成的時候設(shè)置進去。
1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,
session數(shù)據(jù)放在服務(wù)器上
2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙
考慮到安全應(yīng)當(dāng)使用session
3、session會在一定時間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能
考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE
4、單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能3K。
5、所以個人建議:
將登陸信息等重要信息存放為SESSION
其他信息如果需要保留,可以放在COOKIE中
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。