1.會話:客戶端向服務端發送請求,服務端接受請求並響應這樣一次連續的過程,稱為一個會話(session)。
2.可實現登錄訪問控制功能:
login.jsp
doLogin.jsp
index.jsp
1).進入登錄頁面login.jsp,輸入用戶名,密碼后跳轉到業務處理頁面doLogin.jsp;
2).在doLogin.jsp拿到用戶錄入的用戶名密碼校驗后,把用戶名放到session中,轉到主界面index.jsp;
3).接下來再去訪問主界面或其它頁面時,先從session中獲取用戶名,若能得到則說明已經登錄可以做其它操作,否則轉到登錄頁面繼續第1步操作。
3.會話:在整個會話期間都是有效|從登錄到退出|瀏覽器關閉|會話到期|會話銷毀 會話就過期,一般用來實現登錄控制。
說明:
a)當瀏覽器中把cookies設置為阻止,那么session將失效,可以通過url重寫達到效果
<a href='<%=response.encodeURL("index.jsp")%>'>下載二</a>
b)會話實現機制(基於cookie實現的)
會話由誰創建的?
– 會話由容器創建的。
會話保存在哪里?
– 會話保存在容器中
由若干客戶端與服務器連接,服務器會為每個客戶端的一次會話創建一個會話對象,而這些會話對象都在容器中,如何區分會話對象與客戶端的聯系?
– 多數容器都采用cookie機制實現會話機制
結論:多數容器都使用cookie機制實現會話,也就是說使用cookie來保存客戶端與服務器里會話對象之間的對應關系。
使用cookie實現會話機制的過程
1、當容器創建一個新的HttpSession對象后,即生成一個隨機數,稱為會話ID,並將ID值封裝成一個名字為JSESSIONID的cookie,返回給客戶端。
2、當使用jsp中的session會話對象時,容器先從request中獲取JSESSIONID值,根據JSESSIONID值查找到對應的會話對象,返回使用。
3、如果沒有獲取到JSESSIONID值,認為當前的請求沒有相關聯的會話對象,重復步驟1。
4.Cookie與會話的區別
session是在服務器端保存用戶信息,Cookie是在客戶端保存用戶信息
session中保存的是任意對象,Cookie保存的是字符串
session隨會話結束而關閉,Cookie可以長期保存在客戶端硬盤上,也可以臨時保存在瀏覽器內存中
Cookie通常用於保存不重要的用戶信息,重要的信息使用session保存
5.application:實現整個應用期間的數據共享。
6.內置對象范圍
page(當前頁面有效),request(一次請求),session(會話期間),application(整個應用期間),out(當前頁面有效)-->pageContext產生的