域?qū)ο蟮膶?shí)際應(yīng)用
1、如何取得request域的值
轉(zhuǎn)發(fā)能夠取得request域的值
2、使用重定向是否可以取得request域的值
取不到,轉(zhuǎn)發(fā)是唯一能夠取得request域?qū)ο笾兄档姆绞?/span>
3、使用重定向是否可以取得request/session域的值
● request
不能,重定向是兩次請(qǐng)求,兩次響應(yīng)。
第一次請(qǐng)求創(chuàng)建的request對(duì)象中存的值,在第一次響應(yīng)的時(shí)候,值會(huì)隨著request對(duì)象的銷毀而銷毀。
在第二次發(fā)出請(qǐng)求的時(shí)候,是新建一個(gè)request對(duì)象.里面是沒有值的。
● session
能夠取得session域的值
重定向后,session沒有手動(dòng)銷毀,也沒有超時(shí),我們也沒有關(guān)瀏覽器(JSESSIONID),所以我們是維持著有效的會(huì)話.存值的session并沒有銷毀,作為有效的會(huì)話,我們是可以從他身上取值的
4、系統(tǒng)登錄操作后,用戶名應(yīng)保存在哪個(gè)域
在實(shí)際項(xiàng)目開發(fā)中,我們使用session域來保存用戶名使得其他的每一個(gè)頁面都能夠取到我們的用戶名并顯示出來。
5、 服務(wù)器緩存(cache),應(yīng)該使用哪個(gè)域來操作
使用上下文域來操作
使用服務(wù)器緩存的目的是使得我們每一次在取數(shù)據(jù)的過程中,不用每一次都去連接數(shù)據(jù)庫,從數(shù)據(jù)庫中取數(shù)據(jù),我們直接從緩存中讀取數(shù)據(jù)是最方便最快的。
需求:現(xiàn)在有一張表單,表單下拉框中的數(shù)據(jù)是活的, 這組數(shù)據(jù)不經(jīng)常發(fā)生變化(數(shù)據(jù)更新頻率較低),我們應(yīng)該使用哪種方式來對(duì)這些數(shù)據(jù)做顯示的操作。
我們應(yīng)該使用服務(wù)器緩存(cache)(將數(shù)據(jù)從表中取出存放到上下文域中)
以下數(shù)據(jù)從city表中而來
<form>
城市:
<select>
<option>-- 請(qǐng)選擇 --</option>
<option>北京</option>
<option>上海</option>
<option>廣州</option>
<option>深圳</option>
</select>
</form>
每一次都從數(shù)據(jù)表中取值,非常的麻煩,而且耗費(fèi)時(shí)間,所以我們的這張表單的使用效率不高。
我們可以這樣來做,將city表中所有的城市查詢出來,存放到服務(wù)器緩存中(將city表中取出的數(shù)據(jù)存放到上下文域).那么在我們每一次使用以上fomr表單的時(shí)候.直接從服務(wù)器緩存中取值就可以了(從上下文域?qū)ο笾腥≈?
以上服務(wù)器緩存的使用,僅僅針對(duì)表中的數(shù)據(jù)不經(jīng)常做更新的情況下才能夠有效的時(shí)候。
在我們的實(shí)際項(xiàng)目開發(fā)中,域?qū)ο髸?huì)大量的用到,根據(jù)不同的需求,我們使用不同的域?qū)ο髞碜龃嫒≈档牟僮?,但是有一個(gè)使用原則,能用小的域?qū)ο?就不用大的域?qū)ο蟆?/span>
為什么優(yōu)先使用小的域?
較小的域,域?qū)ο蟮匿N毀周期比較短,所以在里面存的值安全性會(huì)得到保障.使用小的域,不耗費(fèi)服務(wù)區(qū)。