

1. 會話技術(shù)
從打開一個瀏覽器訪問某個站點(diǎn),到關(guān)閉這個瀏覽器的整個過程,成為一次會話。會 話技術(shù)就是記錄這次會話中客戶端的狀態(tài)與數(shù)據(jù)的。
會話技術(shù)分為Cookie和Session:
Cookie:數(shù)據(jù)存儲在客戶端本地,減少服務(wù)器端的存儲的壓力,安全性不好,客戶端 可以清除cookie
Session:將數(shù)據(jù)存儲到服務(wù)器端,安全性相對好,增加服務(wù)器的壓力.
1.服務(wù)器端向客戶端發(fā)送一個Cookie
1)創(chuàng)建Cookie:
Cookie cookie = new Cookie(String cookieName,String cookieValue);
示例:
Cookie cookie = new Cookie("username","zhangsan");
那么該cookie會以響應(yīng)頭的形式發(fā)送給客戶端:
注意:Cookie中不能存儲中文
2)設(shè)置Cookie在客戶端的持久化時間:
cookie.setMaxAge(int seconds); ---時間秒
注意:如果不設(shè)置持久化時間,cookie會存儲在瀏覽器的內(nèi)存中,瀏覽器關(guān)閉 cookie信息銷毀(會話級別的cookie),如果設(shè)置持久化時間,cookie信息會 被持久化到瀏覽器的磁盤文件里
示例:
cookie.setMaxAge(10*60);
設(shè)置cookie信息在瀏覽器的磁盤文件中存儲的時間是10分鐘,過期瀏覽器 自動刪除該cookie信息
3)設(shè)置Cookie的攜帶路徑:
cookie.setPath(String path);
注意:如果不設(shè)置攜帶路徑,那么該cookie信息會在訪問產(chǎn)生該cookie的 web資源所在的路徑都攜帶cookie信息
示例:
cookie.setPath("/WEB16");
代表訪問WEB16應(yīng)用中的任何資源都攜帶cookie
cookie.setPath("/WEB16/cookieServlet");
代表訪問WEB16中的cookieServlet時才攜帶cookie信息
4)向客戶端發(fā)送cookie:
response.addCookie(Cookie cookie);
5)刪除客戶端的cookie:
如果想刪除客戶端的已經(jīng)存儲的cookie信息,那么就使用同名同路徑的持久化時 間為0的cookie進(jìn)行覆蓋即可
2. session技術(shù)

HttpSession session = request.getSession();
此方法會獲得專屬于當(dāng)前會話的Session對象,如果服務(wù)器端沒有該會話的Session 對象會創(chuàng)建一個新的Session返回,如果已經(jīng)有了屬于該會話的Session直接將已有 的Session返回(實(shí)質(zhì)就是根據(jù)JSESSIONID判斷該客戶端是否在服務(wù)器上已經(jīng)存在 session了)
注意: 客戶端:IE、火狐、谷歌等等代表不同的客戶端.
注意: 如果在同一個瀏覽器去訪問服務(wù)器不同頁面等是不登錄,那么他們使用的是同一個session
session失效:

1. session過期: 默認(rèn)過期30分鐘.
2. 服務(wù)器關(guān)閉: 因?yàn)閟ession存在服務(wù)器內(nèi)存中.
3. session持久化
