先看看對session的一個比較好的闡述:
成都創(chuàng)新互聯(lián)公司是專業(yè)的定陶網(wǎng)站建設(shè)公司,定陶接單;提供成都網(wǎng)站制作、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行定陶網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
session就是一個會話 ,在瀏覽器不關(guān)閉的前提下,可以保存用戶的信息,就是象一個臨時的容器,來存放這些臨時的東西。比如登錄的保存用戶信息從一個網(wǎng)頁跳轉(zhuǎn)到另一個網(wǎng)頁,用戶信息就可以用session保存網(wǎng)站購物車可以用session實現(xiàn)
為什么需要Session
這是為了填補 Http 協(xié)議的局限,當用戶去訪問一個頁面,服務(wù)端返回完了請求(如,你訪問完一個網(wǎng)頁,這個頁面將頁面內(nèi)容,界面UI呈現(xiàn)給你),就算是結(jié)束了,就斷開了,服務(wù)端不再去追蹤客戶端(瀏覽器)的任務(wù)狀態(tài),所以 Http 的每次請求都是獨立的,非連續(xù)的,Http 也稱為無狀態(tài)協(xié)議。那我們?nèi)绻朐谝粋€場合,或是一個特定過程,操作些用戶自己的數(shù)據(jù),就會很麻煩,甚至很危險。比如你可以通過 url 傳參數(shù)的方式與服務(wù)器交互,并實現(xiàn)操作;
Session(會話) 的出現(xiàn)就解決了這樣的問題,Session是創(chuàng)建在服務(wù)端的,在一定的時間后,由服務(wù)端來消毀。在這段時間,客戶端與服務(wù)端的會話就會保持著,客戶端就會利用服務(wù)端上的 Session 信息來找到或操作一些數(shù)據(jù);
如何使用 Session
Java Api 只給我們一種方式來 獲取 當前會話相關(guān)的 session:
HttpSession session = request.getSession(); //或 HttpSession session = request.getSession(boolean);
設(shè)置值:
session.setAttribute("key", 值對象);
獲取值:
對象類型 obj = (對象類型)session.getAttribute("key"); //如 String name = (String)session.getAttribute("key");
刪除 session 指定屬性健:
session.removeAttribute("key");
清除所有的session,使當前 session 完全失效:
session.invalidate();
session超時周期設(shè)置
1. Tomcat 安裝位置 conf/web.xml :
<session-config> <session-timeout>30</session-timeout> </session-config>
30分種
2. Tomcat 安裝位置 conf/server.xml :
<Context path="/test" docBase="/test" defaultSessionTimeOut="3600" isWARExpanded="true" isWARValidated="false" isInvokerEnabled="true" isWorkDirPersistent="false"/>
單位為 秒
3. Java 代碼設(shè)置:
HttpSession session = request.getSession(); session.setMaxInactiveInterval(1200);
0 分種:
其他說明:
1. session 過期情況:
1>. 客戶端瀏覽器關(guān)閉:
2>. session 會話過期;
3>. 客戶端會話調(diào)用了 .invalidate();
2. 瀏覽器關(guān)閉與session是否還在;
當客戶端瀏覽器關(guān)閉后,session 在服務(wù)端還是會存在一定時間的,只是當瀏覽器器再次打開時,就會生成一個新的 session ,瀏覽器通過生成的 sessionid 屬性來 匹配服務(wù)端的 session; 那上次的session 雖然還在,但是就訪問不到了;
3. <% @ page session="false" %> 是什么情況?:
這句話的意思是,當前不能使用 session, 但是 頁面 session 還是可以創(chuàng)建的;
4. session 在什么時候 被創(chuàng)建:
在 程序 調(diào)用 HttpServletRequest.getSession(true) 時創(chuàng)建;如果 頁面沒有使用 <%@ page session="false"%> 時,在 jsp 頁面編譯成 Servlet 時,會自動 加上 HttpSession session = HttpServletRequest.getSession(true);
總結(jié)
以上就是本文關(guān)于了解java中的session的全部內(nèi)容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
本文標題:了解java中的session
網(wǎng)站路徑:http://chinadenli.net/article6/pppoig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、移動網(wǎng)站建設(shè)、網(wǎng)站策劃、自適應(yīng)網(wǎng)站、微信公眾號、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)