成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JavaWEB開發(fā)10——Cookie&Session

Yujiaao / 2008人閱讀

摘要:會話技術(shù)是幫助服務(wù)器記住客戶端狀態(tài)區(qū)分客戶端會話技術(shù)從打開一個瀏覽器訪問某個站點,到關(guān)閉這個瀏覽器的整個過程,成為一次會話。會話技術(shù)就是記錄這次會話中客戶端的狀態(tài)與數(shù)據(jù)的。

一、會話技術(shù)簡介
1.存儲客戶端的狀態(tài)
由一個問題引出今天的內(nèi)容,例如網(wǎng)站的購物系統(tǒng),用戶將購買的商品信息存儲到哪 里?因為Http協(xié)議是無狀態(tài)的,也就是說每個客戶訪問服務(wù)器端資源時,服務(wù)器并 不知道該客戶端是誰,所以需要會話技術(shù)識別客戶端的狀態(tài)。會話技術(shù)是幫助服務(wù)器 記住客戶端狀態(tài)(區(qū)分客戶端)

2.會話技術(shù)
從打開一個瀏覽器訪問某個站點,到關(guān)閉這個瀏覽器的整個過程,成為一次會話。會 話技術(shù)就是記錄這次會話中客戶端的狀態(tài)與數(shù)據(jù)的。
會話技術(shù)分為Cookie和Session:
Cookie:數(shù)據(jù)存儲在客戶端本地,減少服務(wù)器端的存儲的壓力,安全性不好,客戶端 可以清除cookie
Session:將數(shù)據(jù)存儲到服務(wù)器端,安全性相對好,增加服務(wù)器的壓力

二、Cookie技術(shù)
Cookie技術(shù)是將用戶的數(shù)據(jù)存儲到客戶端的技術(shù),我們分為兩方面學(xué)習(xí):
第一,服務(wù)器端怎樣將一個Cookie發(fā)送到客戶端
第二,服務(wù)器端怎樣接受客戶端攜帶的Cookie

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進行覆蓋即可

2.服務(wù)器端怎么接受客戶端攜帶的Cookie
cookie信息是以請求頭的方式發(fā)送到服務(wù)器端的:

1)通過request獲得所有的Cookie:
Cookie[] cookies = request.getCookies();
2)遍歷Cookie數(shù)組,通過Cookie的名稱獲得我們想要的Cookie
for(Cookie cookie : cookies){
if(cookie.getName().equal(cookieName)){
String cookieValue = cookie.getValue();
}
}

三、Session技術(shù)
Session技術(shù)是將數(shù)據(jù)存儲在服務(wù)器端的技術(shù),會為每個客戶端都創(chuàng)建一塊內(nèi)存空間 存儲客戶的數(shù)據(jù),但客戶端需要每次都攜帶一個標識ID去服務(wù)器中尋找屬于自己的內(nèi) 存空間。所以說Session的實現(xiàn)是基于Cookie,Session需要借助于Cookie存儲客 戶的唯一性標識JSESSIONID

在Session這我們需要學(xué)習(xí)如下三個問題:
怎樣獲得屬于本客戶端的session對象(內(nèi)存區(qū)域)?
怎樣向session中存取數(shù)據(jù)(session也是一個域?qū)ο螅?br>session對象的生命周期?

1.獲得Session對象
HttpSession session = request.getSession();
此方法會獲得專屬于當前會話的Session對象,如果服務(wù)器端沒有該會話的Session 對象會創(chuàng)建一個新的Session返回,如果已經(jīng)有了屬于該會話的Session直接將已有 的Session返回(實質(zhì)就是根據(jù)JSESSIONID判斷該客戶端是否在服務(wù)器上已經(jīng)存在 session了)

2.怎樣向session中存取數(shù)據(jù)(session也是一個域?qū)ο螅?br>Session也是存儲數(shù)據(jù)的區(qū)域?qū)ο?,所以session對象也具有如下三個方法:
session.setAttribute(String name,Object obj);
session.getAttribute(String name);
session.removeAttribute(String name);

3.Session對象的生命周期(面試題/筆試題)
創(chuàng)建:第一次執(zhí)行request.getSession()時創(chuàng)建
銷毀:
1)服務(wù)器(非正常)關(guān)閉時
2)session過期/失效(默認30分鐘)

問題:時間的起算點 從何時開始計算30分鐘?
從不操作服務(wù)器端的資源開始計時

可以在工程的web.xml中進行配置

    30


3)手動銷毀session
session.invalidate();

作用范圍:
默認在一次會話中,也就是說在,一次會話中任何資源公用一個session對象

面試題:瀏覽器關(guān)閉,session就銷毀了? 不對

總結(jié):
重點:圖
會話技術(shù):
Cookie技術(shù):存到客戶端
發(fā)送cookie
Cookie cookie = new Cookie(name,value)
cookie.setMaxAge(秒)
cookie.setPath()
response.addCookie(cookie)
獲得cookie
Cookie[] cookies = request.getCookies();
cookie.getName();
cookie.getValue();

Session技術(shù):存到服務(wù)器端 借助cookie存儲JSESSIONID
HttpSession session = request.getSession();

setAttribute(name,value);
getAttribute(name);

session生命周期
創(chuàng)建:第一次指定request.getSession();
銷毀:服務(wù)器關(guān)閉、session失效/過期、手動session.invalidate();
session作用范圍:默認一會話中

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/72064.html

相關(guān)文章

  • JavaWEB開發(fā)15——Listener&Listener

    摘要:創(chuàng)建與銷毀對象是發(fā)送請求服務(wù)器就會創(chuàng)建它,當響應(yīng)產(chǎn)生時,對象就會銷毀。是容器為開發(fā)人員提供的對象,它提供了對某一資源的已過濾請求調(diào)用鏈的視圖。 一、Listener監(jiān)聽器 Javaweb開發(fā)中的監(jiān)聽器,是用于監(jiān)聽web常見對象 HttpServletRequest HttpSession ServletContext 監(jiān)聽它們的創(chuàng)建與銷毀 屬性變化 session綁...

    RebeccaZhong 評論0 收藏0
  • java&javaweb學(xué)習(xí)筆記(匯總)

    摘要:我的學(xué)習(xí)筆記匯總標簽筆記分為兩大部分和筆記內(nèi)容主要是對一些基礎(chǔ)特性和編程細節(jié)進行總結(jié)整理,適合了解基礎(chǔ)語法,想進一步深入學(xué)習(xí)的人如果覺得不錯,請給,這也是對我的鼓勵,有什么意見歡迎留言反饋目錄基礎(chǔ)鞏固筆記反射基礎(chǔ)鞏固筆記泛型基礎(chǔ)鞏 我的java&javaweb學(xué)習(xí)筆記(匯總) 標簽: java [TOC] 筆記分為兩大部分:javase和javaweb javase javawe...

    yagami 評論0 收藏0
  • JavaWeb(HttpSessionCookie)學(xué)習(xí)筆記一

    摘要:的作用域只能夠傳到當前目錄以及以下的目錄,不可以傳到上一目錄。總結(jié)當客戶端訪問第一個資源并且當前或者沒有禁用當前頁面的默認創(chuàng)建的對象或者沒有調(diào)用方法的時候就會返回一個對象。 cookie的作用域 cookie只能夠傳到當前目錄以及以下的目錄,不可以傳到上一目錄。 HttpSession的創(chuàng)建 HttpSession的生命周期: 1).什么時候創(chuàng)建HttpSession對象①.對于JSP...

    xumenger 評論0 收藏0
  • 超詳細的Java面試題總結(jié)(四 )之JavaWeb基礎(chǔ)知識總結(jié)

    摘要:系列文章請查看超詳細的面試題總結(jié)一之基礎(chǔ)知識篇超詳細的面試題總結(jié)二之基礎(chǔ)知識篇超詳細的面試題總結(jié)三之集合篇常見問題下面的都是自己之前在學(xué)習(xí)的時候總結(jié)的,對于鞏固的基礎(chǔ)知識應(yīng)該有很大幫助。注意多線程的并發(fā)的讀寫類屬性會導(dǎo)致數(shù)據(jù)不同步。 系列文章請查看: 超詳細的Java面試題總結(jié)(一)之Java基礎(chǔ)知識篇 超詳細的Java面試題總結(jié)(二)之Java基礎(chǔ)知識篇 超詳細的Java面試題總結(jié)(...

    Leo_chen 評論0 收藏0
  • Javaweb Q&A

    摘要:方法的參數(shù)不但可以使相對于上下文根的路徑,而且可以是相對于當前的路徑。如和都是合法的路徑。 轉(zhuǎn)發(fā)與重定向區(qū)別是什么 在調(diào)用方法上 轉(zhuǎn)發(fā) 調(diào)用 HttpServletRequest 對象的方法 request.getRequestDispatcher(test.jsp).forward(req, resp); 重定向 調(diào)用 HttpServletResponse 對象的方法 res...

    hiyang 評論0 收藏0

發(fā)表評論

0條評論

Yujiaao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<