本篇文章給大家分享的是有關(guān)Session的基礎是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)服務項目包括大名網(wǎng)站建設、大名網(wǎng)站制作、大名網(wǎng)頁制作以及大名網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,大名網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到大名省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!由于Cookie有一很大的局限,于是Session出現(xiàn)了
Session的作用就是在服務器端保存一些用戶的數(shù)據(jù),然后傳遞給用戶一個名字為JSESSIONID的Cookie,所以本質(zhì)上它也是一個Cookie,這個JESSIONID對應這個服務器中的一個Session對象,通過它就可以獲取到保存用戶信息的Session。
首先Session是jsp中九大內(nèi)置對象之一
其次Session是一個域?qū)ο?/p>
然后Session是在服務器端用來保存用戶數(shù)據(jù)的一種技術(shù)。并且Session會話技術(shù)是基于Cookie實現(xiàn)的。
Session的創(chuàng)建時機是在request.getSession()方法第一次被調(diào)用時。
補充:request.getSession()之后的調(diào)用都是獲取已經(jīng)創(chuàng)建了的Session對象,單例模式
Session被創(chuàng)建后,同時還會有一個名為JSESSIONID的Cookie被創(chuàng)建。
這個Cookie的默認時效就是當前會話。
Session被創(chuàng)建后,對應的Cookie被保存到瀏覽器中,之后瀏覽器每次訪問項目時都會攜帶該Cookie。
當我們再次調(diào)用時會根據(jù)該JSESSIONID獲取已經(jīng)存在的Cookie,而不是再創(chuàng)建一個新的Cookie。
如果Cookie中有JSESSIONID,但是JSESSIONID沒有對應的Session存在,則會重新創(chuàng)建一個HttpSession對象,并重新設置JSESSIONID。
setAttribute設置屬性
getAttribute獲取屬性
Session的作用域是當前會話,即對應的一個瀏覽器客戶端,一個瀏覽器一個session對象非一個網(wǎng)頁
Session對象在服務器端不能長期保存,它是有時間限制的,超過一定時間沒有被訪問過的Session對象就應該釋放掉,以節(jié)約內(nèi)存。Session的計時是從最后一次被訪問開始計時,統(tǒng)計其“空閑”的時間。
說明:Session對象默認的最長有效時間為30分鐘。在tomcat的conf目錄下web.xml配置文件中
設置
我們在web.xml文件中配置的Session會話超時時間是對所有Session都生效的。
setMaxInactiveInterval(intseconds)設置用戶多長時間沒有操作之后就會Session過期。以秒為單位。
如果是正數(shù)。表示用戶在給定的時間內(nèi)沒有任意操作,Session會話就會過期。
如果是非正數(shù)(零&負數(shù))。表示Session永不過期。
intgetMaxInactiveInterval()獲取超時時間。以秒為單位。
invalidate()強制失效
Session鈍化:Session在一段時間內(nèi)沒有被使用或關(guān)閉服務器時,會將當前存在的Session對象及Session對象中的數(shù)據(jù)序列化到磁盤的過程,稱之為鈍化。
Session活化:Session被鈍化后,服務器再次調(diào)用Session對象或重啟服務器時,將Session對象及Session對象中的數(shù)據(jù)從磁盤反序列化到內(nèi)存的過程,稱之為活化。
如果希望Session作用域中的對象也能夠隨Session鈍化過程一起序列化到磁盤上,則對象的實現(xiàn)類也必須實現(xiàn)java.io.Serializable接口。不僅如此,如果對象中還包含其他對象的引用,則被關(guān)聯(lián)的對象也必須支持序列化。
以上就是Session的基礎是什么,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。