Session 技術(shù)
問題 :一個(gè)用戶的不同請(qǐng)求處理共享數(shù)據(jù)怎么辦?
解決:使用Session技術(shù)
原理 :用戶第一次訪問服務(wù)器,服務(wù)器會(huì)創(chuàng)建一個(gè)Session對(duì)象給此用戶,并將Session對(duì)象的JSESSIONID使用Cookie技術(shù)存儲(chǔ)到瀏覽器中,保證用戶的其他請(qǐng)求能夠獲取通過(guò)一個(gè)Session對(duì)象,也保證了不同請(qǐng)求能夠獲取共享數(shù)據(jù)。
1.如果有Session的標(biāo)識(shí)符JSESSIONID還存在或者沒有創(chuàng)建過(guò)則將返回其Session對(duì)象
2.如果沒有Session的標(biāo)識(shí)符JSESSIONID存在但是在服務(wù)器里的被銷毀或者時(shí)間沒了,則將會(huì)重新創(chuàng)建一個(gè)Session對(duì)象并將其重置給瀏覽器
注意:
1. 設(shè)置時(shí)長(zhǎng)
------ hs.setMaxInactiveInterval(5);//設(shè)置時(shí)長(zhǎng)
-------在tomact中配置D:\apache-tomcat-7.0.103\conf\web.xml找到Session 修改時(shí)間
------在web.xml文件中講(2)中的拉入進(jìn)來(lái)
2.設(shè)置Session強(qiáng)制失效
hs.invalidate();
3.JSESSION存儲(chǔ)在Cookie的臨時(shí)空間里,關(guān)閉瀏覽器則消失,關(guān)閉瀏覽器一定消失
4.默認(rèn)時(shí)間30分鐘,指的是最后一次訪問的30分鐘.
5.跟Cookie很像,依賴于Cookie技術(shù),他將其JSESSION存儲(chǔ)到Cookie中
6.一旦關(guān)閉瀏覽器,JSESSION在瀏覽器中就消失了。
總結(jié):
1.session解決了一個(gè)項(xiàng)目中的數(shù)據(jù)共享問題,只要JSESSION不失效和session對(duì)象不失效的情況下用戶可以訪問同一個(gè)session對(duì)象
2.session是將JSESSION和服務(wù)器中的進(jìn)行對(duì)比,如果有則返回,沒有則創(chuàng)建
Session的數(shù)據(jù)流
創(chuàng)建session對(duì)象
HttpSession hs=req.getSession()
存儲(chǔ)和獲取數(shù)據(jù)
1.hs.setAttribute(String name, Object value); 存
2.hs.getAttribute(String name) ;取