<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kxbin
    成功留給有準備的人
    posts - 10,  comments - 35,  trackbacks - 0


    作用域

    使用el的時候,默認會以一定順序搜索四個作用域,將最先找到的變量值顯示出來。

    如果我們有${username}這樣一個正則表達式,它回去依次調用pageContext.getAttribute("username") -> request.getAttribute("username") -> session.getAttribute("username") -> application.getAttribute("username"),只要找到某一個不為空的值就立刻返回。

    這樣的確方便我們的操作,但是隨之也出現了另外一個問題,如果pageContext和request中有同名變量,但是我想取得request中的變量該如何是好呢?這就需要為el表達式引入作用域的概念了。

    ${pageScope.username}

    ${requestScope.username}

    我們可以直接訪問13-04這個應用,看看el表達式支持的所有對象。

    下面我們分別對每個作用域對象進行講解。

    表?13.1.?el中的作用域

    el中的作用域 對應關系
    pageContext(1) 當前頁的pageContext對象
    pageScope 把page作用域中的數據映射為一個map對象
    requestScope(2) 把request作用域中的數據映射為一個map對象
    sessionScope 把session作用域中的數據映射為一個map對象
    applicationScope 把application作用域中的數據映射為一個map對象
    param 對應request.getParameter()
    paramValues(3) 對應request.getParameterValues()
    header(4) 對應request.getHeader()
    headerValues 對應request.getHeaderValues()
    cookie(5) 對應request.getCookies()
    initParam(6) 對應ServletContext.getInitParamter()


    (1)

    例子中的${pageContext.request.contextPath}返回的是request.getContextPath()的值,在此例中就是/13-04,我們經常使用這個來拼接jsp中的絕對路徑。

    這里的${pageContext.request.contextPath}是一種特殊用法,不能使用${request.contextPath}的形式替代。

    (2)

    pageScope, requestScope, sessionScope, appliationScope都可以看作是Map型變量,調用其中的數據可以使用${pageScope.name} 或${pageScope["name"]}的形式,這兩種寫法是等價的。

    在某些情況下只能使用${pageScope["content-type"]},這里不能寫成${pageScope.content-type},jsp無法解析連字符(-)會出現錯誤。

    (3)

    需要注意的是${paramValues.name}得到的是一個字符串數組,如果需要獲得其中某個值,還需要使用${paramValues.name[0]}指定數組中的索引。

    這與下面的${headerValues.name}是相似的。

    (4)

    ${header.name}會取得http請求中的header參數,現實工作中很少用到這里的數據。

    例子中使用Host是指請求訪問的主機地址,包括ip和端口號。而Referer比較有趣,如果用戶通過超鏈接跳轉過來的,Referer會保存上次訪問頁面的地址,我們就可以通過它來統計哪些用戶是從哪里轉來的了。

    (5)

    ${cookie.name}將獲得對應cookie的對象,比如我們用jsp將一段cookie發送給客戶端。

    Cookie cookie = new Cookie("username", "Username in cookie");
    response.addCookie(cookie);

    創建一個名稱為username,值為"Username in cookie"的Cookie對象,然后發送給客戶端。

    然后我們就可以使用${cookie.username}獲得這個cookie了,${cookie.username.name}獲得cookie名稱,${cookie.username.value}獲得cookie值。

    (6)

    ServletContext.getInitParamter()指的應用的初始變量,這些變量都是定義在web.xml中的。

    <context-param>
    <param-name>username</param-name>
    <param-value>username with context param</param-value>
    </context-param>

    ${initParam.username}就會得到這里的變量值。

    以上都是死記硬背的東西,建議實際用到的時候翻看一下就好了,演示代碼都放在13-04下,為了獲得param和cookie還要點擊一下最下邊的連接才可以。

    運算符

    el表達式中支持java中所有的操作符,并且還有一些擴展,下面我們簡要做一下對照。

    表?13.2.?加減乘除四則運算

    符號 說明
    +
    -
    *
    /或div
    %或mod 求余

    表?13.3.?比較運算

    符號 說明
    ==或eq 相等(equals)
    !=或ne 不相等(not equals)
    <或lt 小于(less than)
    >或gt 大于(greater than)
    <=或le 小于等于(less than or equals)
    >=或ge 大于等于(greater than or equals)

    表?13.4.?邏輯運算

    符號 說明
    &&或and 邏輯和
    ||或or 邏輯或
    !或not 取反

    表?13.5.?特殊運算

    符號 說明
    empty 是否為null或空字符串
    ? : 三元運算符

    下面上所有運算符的顯示結果,順便說一下如果想在jsp中顯示${name}而不讓jsp把它當作el計算出來,可以寫成\${name},這樣最后顯示的結果就是${name}了。

    posted on 2009-10-11 11:56 kxbin 閱讀(1686) 評論(0)  編輯  收藏 所屬分類: J2EE
    你恨一個人是因為你愛他;你喜歡一個人,是因為他身上有你沒有的;你討厭一個人是因為他身上有你有的東西;你經常在別人面前批評某人,其實潛意識中是想接近他。

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(5)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    J2EE

    java技術網站

    Linux

    平時常去的網站

    數據庫

    電影網站

    網站設計

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 狠狠综合久久综合88亚洲| 韩国免费三片在线视频| 亚洲色成人中文字幕网站| 免费福利在线观看| 亚洲国产午夜中文字幕精品黄网站| 亚洲国产精品网站在线播放| 性感美女视频免费网站午夜| 亚洲欧洲国产综合AV无码久久| 操美女视频免费网站| 亚洲 欧洲 日韩 综合在线| 女人18毛片免费观看| 精品一区二区三区免费毛片| 亚洲A∨午夜成人片精品网站| 一级特黄录像免费播放中文版| 久久亚洲2019中文字幕| 久久香蕉国产线看免费| 亚洲色图黄色小说| 免费无码肉片在线观看| 在线亚洲v日韩v| 亚洲人成图片小说网站| 免费国产黄网站在线观看可以下载| 亚洲美女视频一区二区三区| 最近中文字幕无免费视频| 精品一区二区三区无码免费直播| 亚洲国产精品成人网址天堂| 日本黄色动图免费在线观看| 亚洲13又紧又嫩又水多| 亚洲成a人片在线播放| 免费精品久久天干天干| 夜夜爽妓女8888视频免费观看| 亚洲精品国产精品乱码不卞| 久久精品免费观看国产| 亚洲小说图区综合在线| 国产成人亚洲精品狼色在线| 亚洲免费电影网站| 狠狠热精品免费观看| 亚洲爆乳精品无码一区二区三区| 免费国产作爱视频网站| 国产精品免费久久| 日本亚洲精品色婷婷在线影院| 亚洲国产成人影院播放|