${exPRession}
1.2、[]與.運算符 EL 提供.和[]兩種運算符來存取數據。當要存取的屬性名稱中包含一些特殊字符,如.或?等并非字母或數字的符號,就一定要使用 []。例如: ${user.My-Name}應當改為${user["My-Name"] } 如果要動態取值時,就可以用[]來做,而.無法做到動態取值。例如: ${user[data]}中data 是一個變量
1.3、變量 EL存取變量數據的方法很簡單例如:${username}。它的意思是取出某一范圍中名稱為username的變量。 因為我們并沒有指定哪一個范圍的username,所以它會依序從Page、Request、session、application范圍查找。 假如途中找到username,就直接回傳,不再繼續找下去,但是假如全部的范圍都沒有找到時,就回傳null。
1.4、訪問順序
1.算術運算符有五個:+、-、*或$、/或div、%或mod
2.關系運算符有六個:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
3.邏輯運算符有三個:&&或and、||或or、!或not
4.其它運算符有三個:Empty運算符、條件運算符、()運算符
例:${empty param.name}、${A?B:C}、${A*(B+C)}
為了避免jsp混淆運算符和頁面關鍵字,很多運算符都有替代寫法:
| 關系運算符 | 說明 | 范例 | 結果 |
| == 或 eq | 等于 | ${5==5}或${5eq5} | true |
| != 或 ne | 不等于 | ${5!=5}或${5ne5} | false |
| < 或 lt | 小于 | ${3<5}或${3lt5} | true |
| > 或 gt | 大于 | ${3>5}或{3gt5 | false |
| <= 或 le | 小于等于 | ${3<=5}或${3le5} | true |
| >= 或 ge | 大于等于 | ¥{3>=5}或${3ge5} | false |
注意:在使用EL 關系運算符時,不能夠寫成: ${param.passWord1} == ${param.password2} 或者 ${ ${param.password1 } == ${ param.password2 } }而應寫成 ${ param.password1 == param.password2 }
邏輯運算符
| 邏輯運算符 | 范例 | 結果 |
| &&或and | 交集${A && B}或${A and B} | true/false |
| ||或or | 并集${A || B}或${A or B} | true/false |
| !或not | 非${! A }或${not A} | true/false |
使用EL訪問pageContext對象,可以 取得頁面的詳細信息,如下:
${pageContext.request.queryString} 取得請求的參數字符串
${pageContext.request.requestURL} 取得請求的URL,但不包括請求之參數字符串
${pageContext.request.contextPath} 服務的web application 的名稱
${pageContext.request.method} 取得HTTP 的方法(GET、POST)
${pageContext.request.protocol} 取得使用的協議(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser} 取得用戶名稱
${pageContext.request.remoteAddr } 取得用戶的ip 地址
${pageContext.session.new} 判斷session 是否為新的
${pageContext.session.id} 取得session 的ID
${pageContext.servletContext.serverInfo} 取得主機端的服務信息
四、EL訪問對象EL表達式可以訪問一系列對象,一共有11個。我們重點學習了最重要的1-6。
(1)pageContext:指JSP的pageContext對象
(2)pageScope:一個Map對象,包括page范圍的屬性和值
(3)requestScope:一個Map對象,包括request范圍的屬性和值
(4)sessionScope:一個Map對象,包括session范圍的屬性和值
(5)ApplicationScope:一個Map對象,包括application范圍的屬性和值
(6)param:一個Map對象,包括Web請求參數(request parameter)的字符串值,對應了ServletRequest.getParameter(String)
(7)paramValues:一個Map對象,包括Web請求參數(request parameter)的多個字符串值,對應了ServletRequest.getParameterValues(String)
(8)header:一個Map對象,包括請求的頭信息值,對應了ServletRequest.getHeader(String)
(9)headerValues:一個Map對象,包括請求的頭信息多個值,對應了ServletRequest.getHeaders(String)
(10)cookie:一個Map對象,包括對應名稱的Cookie,對應了HttpServletRequest.getCookie(String)
(11)initParam:一個Map對象,包括一個Web程序的初始化參數值,對應了ServletRequest.getInitParameter(String)
新聞熱點
疑難解答