1. 程式人生 > >EL表示式中關於四個作用域物件的注意事項!

EL表示式中關於四個作用域物件的注意事項!

主要說明獲取作用域資料獲取這方面的注意事項!

傳統方式獲取作用域資料缺點:

  1. 需要匯入java包
  2. 需要將型別強制轉換
  3. 書寫麻煩容易出現問題

使用EL表示式就可以完美解決傳統方式的缺點:

作用:獲取四個作用物件中的資料,其他宣告的變數不予理會,只獲取下邊四個作用域中的資料.

四個作用域分別是:1.pageContext 變數只在定義的頁面上有效.

                                  2.request 

變數在一個請求中有效,即變數的值可從一個頁面傳到下一個頁面.

                                  3.session 變數在整個會話過程中有效,可以跨越多個頁面.

                                  4.application 由於在伺服器端,所以這個

變數在整個系統中有效,相當於全域性變數,每個人的每次訪問都可用到該變數,可以作計數器.

語法:${鍵名}返回key對應的value {}中可以使鍵名也可以進行邏輯運算 判斷空值 獲取請求頭資料和cookie資料!

資料中儲存的如果是普通的字串,則直接返回.

如果儲存的是物件,則返回物件.

普通物件:${k.屬性名.屬性名}

集合物件:list集合:${k.[index]}  //list中用[]獲取資料,其實是以陣列的方式儲存資料

                  map集合:${k.map鍵名}//map中用.key鍵名獲取資料

作用域資料中查詢順序:(為了解決出現key名相同,value不同.)

pageContext(第一)-->request(第二)-->session(倒數第二)-->application(倒數第一)

為什麼pageContext是第一個被查詢的:其實也很容易理解,因為他的作用域是最小的一個,按照排序作用範圍依次變大!.(預設查詢優先順序比較高).注意:當資料找到時候就會停止尋找.

指定查詢:
                ${pageScope.鍵名}---${requestScope.鍵名}--${sessionScope.鍵名}--${applicationScope.鍵名}