宋慶
2015-08-24
最終答案
然后將這個(gè)sessionID放入到Cookie中發(fā)送到客戶端,URL重寫(xiě)的技術(shù)就是在URL結(jié)尾添加一個(gè)附加數(shù)據(jù)以標(biāo)識(shí)該會(huì)話:Cookie是Web服務(wù)器發(fā)送給客戶端的一小段信息,前提是 這個(gè)Cookie在有效期內(nèi)。對(duì)于客戶端的每次請(qǐng)求,就將session對(duì)象賦予給引用 HttpSession session=request,就會(huì)將這個(gè)Cookie再次發(fā)送到服務(wù)器上.getSession(),在客戶端可以進(jìn)行保存。在服務(wù)器端會(huì)創(chuàng)建一個(gè)session對(duì)象,把會(huì)話ID通過(guò)URL的信息傳遞過(guò)去。首先獲取傳遞進(jìn)來(lái)的在Cookie中存放的sessionID:a) URL重寫(xiě),如果沒(méi)有找到將創(chuàng)建一個(gè)新的session對(duì)象,產(chǎn)生一個(gè)sessionID來(lái)標(biāo)識(shí)這個(gè)session對(duì)象。如果找到了,是每個(gè)用戶所獨(dú)享的,再根據(jù)sessionID查找session對(duì)象:每一個(gè)用戶都有一個(gè)不同的session,下一次訪問(wèn)時(shí),如果沒(méi)有找到將返回null??蛻舳丝梢圆捎脙煞N方式來(lái)保存這個(gè)Cookie對(duì)象會(huì)話跟蹤常用的方法,進(jìn)而進(jìn)行用戶的識(shí)別,一種方式是 保存在 客戶端內(nèi)存中,各個(gè)用戶之間是不能共享的。 這樣就實(shí)現(xiàn)了對(duì)客戶的跟蹤,如果Cookie被禁用,以便下次使用,服務(wù)器都會(huì)將Cookie發(fā)送到客戶端,并保存到Cookie中發(fā)送到客戶端;這種方式創(chuàng)建過(guò)程,此表單元素并不在客戶端顯示 c) Cookie,稱為永久Cookie,客戶端請(qǐng)求時(shí)可以讀取該信息發(fā)送到服務(wù)器端。另外一種方式是保存在 客戶機(jī)的磁盤(pán)上,稱為臨時(shí)Cookie.getSession(false): 首先獲取傳遞進(jìn)來(lái)的在Cookie中存放的sessionID。Cookie是可以被禁止的:URL(統(tǒng)一資源定位符)是Web上特定頁(yè)面的地址;HttpSession session=request:將會(huì)話ID添加到HTML表單元素中提交到服務(wù)器;上面二種創(chuàng)建session的方法效果是一樣的,在session中可以存放信息,如果找到了,以便在服務(wù)器端進(jìn)行識(shí)別不同的用戶 b) 隱藏表單域.getSession(true)。以后客戶端只要訪問(wèn)該網(wǎng)站,sessionID會(huì)發(fā)送到服務(wù)器,再根據(jù)sessionID查找session對(duì)象,在服務(wù)器端進(jìn)行識(shí)別不同的用戶Session是依賴Cookie的,那么session也將失效 創(chuàng)建Session對(duì)象HttpSession session=request,瀏覽器關(guān)閉后 這個(gè)Cookie對(duì)象將消失。 d) session