EL ?ㄥ??涓?xpression Language
EL 璇?娉?寰?绠???锛?瀹???澶х???圭?瑰氨??浣跨?ㄤ?寰??逛究???ヤ??ヤ?缁?EL涓昏???璇?娉?缁???锛?
${sessionScope.user.sex}
????EL?芥??浠?{涓鴻搗濮???浠?涓虹?灏劇????涓?杩?L??渚?????????锛?浠?Session?????翠腑锛???寰?
?ㄦ?風???у???????ヤ??т???JSP Scriptlet????娉?濡?涓?锛?
User user =(User)session.getAttribute("user");
String sex =user.getSex( );
涓よ???告??杈?涔?涓?锛???浠ュ????L ??璇?娉?姣?浼?缁?JSP Scriptlet ?翠負?逛究??绠?娲???
EL琛ㄨ揪寮???????JSTL浣跨?ㄧ????浣???瑕?寮???STL??绛懼?(<c:forEach items=""></c:forEach>,<c:if test=""></c:if>绛?灞?浜?jstl琛ㄨ揪寮?)
<%@taglib uri=" jsp??绛劇???藉??绌洪??" prefix="c"%>
.涓? [ ] 杩?绠?绗?
EL ??渚? . ?? [ ] 涓ょ?杩?绠?绗??ュ?艱???版????涓???涓よ????浠h〃????????涓??風??锛?
${sessionScope.user.sex}绛?浜?${sessionScope.user["sex"]}
.??? [ ] 涔???浠ュ???舵販??浣跨???濡?涓?锛?
${sessionScope.shoppingCart[0].price}
??浼?缁???涓?hoppingCart涓?绗?涓?椤圭?╁????浠鋒?箋??
涓?杩?锛?浠ヤ?涓ょ????碉?涓よ??浼???宸?寮?锛?
(1) 褰?瑕?瀛?????灞??у??绉頒腑????涓?浜??規??瀛?绗??濡?. ?? ?? 绛?骞堕??瀛?姣????闆????绗??鳳?灏變?瀹?瑕?浣跨??[ ]锛?
渚?濡?锛?${user.My-Name }
涓?杩版??涓?姝g‘???瑰?锛?搴?褰??逛負锛?${user["My-Name"] }
(2) ??浠??ヨ????涓??????碉?
${sessionScope.user[data]}
姝ゆ?訛?data ??涓?涓?????锛?????ata???間負"sex"?訛??d?杩扮??渚?瀛?绛?浜?${sessionScope.user.sex}锛?
????ata ???間負"name"?訛?瀹?灏辯??浜?${sessionScope.user.name}??
??姝わ?濡???瑕??ㄦ?????兼?訛?灏卞??浠ョ?ㄤ?杩扮???規??ュ??锛?浣???娉????闆?ㄦ?????箋??
EL ????
EL 瀛????????版?????規?寰?绠???锛?渚?濡?锛?${username}??瀹????????????烘??涓????翠腑??绉頒負username????????
??涓烘??浠?骞舵病????瀹???涓?涓????寸??username锛???浠ュ????榛?璁ゅ?間???浠?Page ???存?撅???濡??句??幫?
??渚?搴???equest??Session??Application???淬????濡???涓??懼??sername锛?灏辯?存?ュ??浼?锛?涓???缁х畫?句??夥?
浣?????濡??ㄩ?ㄧ?????撮?芥病???懼?版?訛?灏卞??浼?null锛?褰???L琛ㄨ揪寮?杩?浼????轟???锛?椤甸????劇ず绌虹?斤???涓??????拌???ULL??
灞??ц???達?jstl??绉幫? | EL涓?????绉? |
Page | PageScope |
Request | RequestScope |
Session | SessionScope |
Application | ApplicationScope |
??浠?涔???浠ユ??瀹?瑕????哄??涓?涓????寸??????锛?
??渚? | 璇存?? |
${pageScope.username} | ????age???寸??username???? |
${requestScope.username} | ????equest???寸??username???? |
${sessionScope.username} | ????ession???寸??username???? |
${applicationScope.username} | ????pplication???寸??username???? |
?朵腑锛?pageScope??requestScope??sessionScope??applicationScope?芥??EL ??????瀵矽薄锛?
?卞??浠?????绉闆??浠ュ?瀹規?????哄??浠???浠h〃??????锛?
渚?濡?锛?${sessionScope.username}??????ession???寸??username ??????杩?绉???娉???涓???姣?涔???JSP ????娉?锛?
String username =(String) session.getAttribute("username");瀹規????绠?娲?璁稿?.
???ㄨ漿??绫誨??
EL ?や???渚??逛究瀛?????????璇?娉?涔?澶?锛?瀹????涓?涓??逛究?????藉氨??锛????ㄨ漿??绫誨??锛???浠??ョ??涓??㈣?涓???渚?锛?
${param.count + 20}
???ョ??浣?浼???ount???間負10?訛??d?涓??㈢??缁???涓?0??涔???娌℃?ヨЕ杩?JSP ??璇昏?????戒?璁や負涓??㈢??渚?瀛???????褰??剁??锛?
浣?????SP 1.2 涔?涓?涓??借??峰??锛???????浠?绐?浣???浼??ョ???鹼?瀹?浠???绫誨??涓?寰???String锛???浠ュ?浣??ユ?朵???锛?蹇?椤誨??灏?瀹?杞?涓哄?朵?绫誨??锛?
濡?锛?int??float 绛?绛?锛??跺?????芥?ц?涓?浜??闆???绠?锛?涓??㈡??涔???????娉?锛?
String str_count =request.getParameter("count");
int count =Integer.parseInt(str_count);
count = count + 20;
??浠ワ?娉ㄦ??涓?瑕???java??璇?娉?锛?褰?瀛?绗?覆???闆???ㄢ??+???炬?ユ?朵????闆??杞???負瀛?绗?覆锛???娣鋒??姐??
EL ????瀵矽薄
JSP??9涓?????瀵矽薄锛???EL涔?????宸辯??????瀵矽薄??EL????瀵矽薄?誨?辨??11 涓?
????瀵矽薄 | 绫誨?? | 璇存?? |
PageContext | javax.servlet.ServletContext | 琛ㄧず姝?SP??PageContext |
PageScope | java.util.Map | ??寰?Page???寸??灞??у??绉版??瀵瑰????? |
RequestScope | java.util.Map | ??寰?Request???寸??灞??у??绉版??瀵瑰????? |
sessionScope | java.util.Map | ??寰?Session???寸??灞??у??绉版??瀵瑰????? |
applicationScope | java.util.Map | ??寰?Application???寸??灞??у??绉版??瀵瑰????? |
param | java.util.Map | 濡???ServletRequest.getParameter(String name)????浼?String绫誨?????? |
paramValues | java.util.Map | 濡???ServletRequest.getParameterValues(String name)????浼?String[]绫誨?????? |
header | java.util.Map | 濡???ServletRequest.getHeader(String name)????浼?String绫誨?????? |
headerValues | java.util.Map | 濡???ServletRequest.getHeaders(String name)????浼?String[]绫誨?????? |
cookie | java.util.Map | 濡???HttpServletRequest.getCookies() |
initParam | java.util.Map | 濡???ServletContext.getInitParameter(String name)????浼?String绫誨?????? |
涓?杩???涓??矽?娉ㄦ??????濡???浣?瑕???L杈??轟?涓?甯擱????璇?锛?瀛?绗?覆瑕?????寮??鳳?涓??剁??璇?EL浼?榛?璁ゆ??浣?璁や負??甯擱??褰???涓?涓??????ュ???锛?
杩??跺???杩?涓???????涓?澹版?????翠?瀛??ㄧ??璇?浼?杈??虹┖锛?濡???瀛??ㄥ??杈??鴻?ュ???????箋??
灞???Attribute)涓?????Scope)
涓????存???崇??EL ????瀵矽薄????浠ヤ???涓?锛?pageScope??requestScope??sessionScope ??
applicationScope锛?瀹?浠??烘??涓?灏卞??JSP??pageContext??request??session??application涓??鳳???浠ョ?????ㄨ?????绋??ヨ?存????
涓?杩?蹇?椤繪敞??????锛?杩???涓?????瀵矽薄???界?ㄦ?ュ??寰????村??у?鹼???SP涓???getAttribute(String name)锛??翠??藉??寰??朵??稿?充俊??锛?
渚?濡?锛?JSP涓???request瀵矽薄?ゅ??浠ュ????灞??т?澶?锛?杩???浠ュ??寰??ㄦ?風??璇鋒????版??琛ㄥご淇℃??绛?绛???
浣?????L涓?锛?瀹?灏卞???藉??绾??ㄦ?ュ??寰?瀵瑰????寸??灞??у?鹼?
渚?濡?锛???浠?瑕???ession 涓??ㄥ??涓?涓?灞??э?瀹?????绉頒負username锛???SP 涓?浣跨??ession.getAttribute("username")?ュ??寰?username ???鹼?
?浣?????L涓?锛?????浣跨??{sessionScope.username}?ュ??寰??跺?肩????
cookie
??璋???cookie??涓?涓?灏?灏?????????浠訛?瀹???浠?ey??value???瑰?灏?Session Tracking????瀹矽?闆??ㄨ?涓???????浠跺??锛?杩?涓???????浠堕??甯稿???ㄤ?娴?瑙??ㄧ????瀛??哄????
JSTL骞舵病????渚?璁懼??cookie???ㄤ?锛???涓鴻?涓??ㄤ???甯擱?芥????绔?寮?????蹇?椤誨?誨????浜???锛???涓???浜ょ???绔???寮???????
???ユ??浠???ookie 涓?璁懼??涓?涓???绉頒負userCountry???鹼??d???浠ヤ嬌??{cookie.userCountry}?ュ??寰?瀹???
header ??headerValues
header ?ㄥ???ㄦ?鋒?瑙??ㄥ?????$???ㄦ?ユ??????版??锛?褰??ㄦ?瘋?姹????$????缃?椤墊?訛?浼????轟?涓?璁拌澆瑕?姹?淇℃??????澶存??浠訛?渚?濡?锛??ㄦ?鋒?瑙??ㄧ?????????ㄦ?瘋?$???烘??璁懼?????哄??绛??朵??稿?蟲?版???????ヨ???寰??ㄦ?鋒?瑙??ㄧ??????锛???{header["User-Agent"]}??????ㄩ?灏??轟?涓?锛??????藉??涓???澶村??绉版?ユ??涓??????鹼?姝ゆ?跺?椤繪?逛負浣跨??eaderValues ?ュ??寰?杩?浜??箋??
娉ㄦ??:??涓?ser-Agent 涓???????-??杩?涓??規??瀛?绗????浠ュ?椤諱嬌?ㄢ??[]??锛???涓??藉????
$(header.User-Agent)??
initParam
灏卞???朵?灞??т??鳳???浠???浠ヨ??琛?璁懼??web 绔??扮????澧?????Context)锛?褰???浠??沖??寰?杩?浜?????nitParam灏卞???朵?灞??т??鳳?
??浠???浠ヨ??琛?璁懼??web 绔??扮????澧?????Context)锛?褰???浠??沖??寰?杩?浜?????
<?xml version="1.0"encoding="ISO-8859-1"?>
<web-appxmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">锛?
<context-param>
<param-name>userid</param-name>
<param-value>mike</param-value>
</context-param>锛?
</web-app>
?d???浠?灏卞??浠ョ?存?ヤ嬌??{initParam.userid}?ュ??寰???绉頒負userid锛??跺?間負mike ?????般??
涓??㈡??涔???????娉?锛?String userid =(String)application.getInitParameter("userid");
param??paramValues
?ㄥ??寰??ㄦ?峰???版?堕??甯鎬嬌?ㄤ?涓??規?锛?
request.getParameter(String?name)
request.getParameterValues(String?name)
??EL涓?????浠ヤ嬌??aram??paramValues涓よ???ュ??寰??版????
${param.name}
${paramValues.name}
杩???param ?????藉??request.getParameter(String name)?稿??锛???paramValues??
request.getParameterValues(String name)?稿????濡????ㄦ?峰~浜?涓?涓?琛ㄦ?鹼?琛ㄦ?煎??绉頒負username锛?????浠?灏卞??浠ヤ嬌??{param.username}?ュ??寰??ㄦ?峰~?ョ???箋??
???拌???锛?澶у?跺?璇ュ???纭?EL琛ㄨ揪寮????介??杩???缃?瀵矽薄???鹼?涔?灏辨????璇繪??浣?锛?濡????寵?琛?????浣???璇?灏辮?╁???頒唬???誨????锛?姣?绔?EL琛ㄨ揪寮?浠?浠???瑙??句???杈??烘??绛劇艦浜???
pageContext
??浠???浠ヤ嬌??${pageContext}?ュ??寰??朵????崇?ㄦ?瘋?姹???椤甸?㈢??璇??淇℃????涓?琛ㄥ???轟???涓?姣?杈?甯哥?ㄧ???ㄥ??
Expression | 璇存?? |
${pageContext.request.queryString} | ??寰?璇鋒??????闆??绗?覆 |
${pageContext.request.requestURL} | ??寰?璇鋒???URL锛?浣?涓?????璇鋒?涔????闆??绗?覆,??ervlet??HTTP?闆???? |
${pageContext.request.contextPath} | ???$??webapplication????绉? |
${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????負?扮??锛???璋??扮??session锛?琛ㄧず????erver浜х????client灏???浣跨?? |
${pageContext.session.id} | ??寰?session??ID |
${pageContext.servletContext.serverInfo} | ??寰?涓繪?虹???????′俊?? |
?杩?涓?瀵矽薄???????版?瑰??浠g????纭?缂?????棰?锛?濡?椤甸??腑??涓?A??绛鵑?炬?ヨ?塊??涓?涓?SERVLET锛?濡?????姝諱?璇?ERVLET??HTTP?闆??
?d?濡???褰?璇?ERVLET??SERVLET-MAPPING?瑰?????跺??蹇?椤昏?淇??規?浠g??锛?杩??風淮?ゆ?т?澶ф?????c??
EL绠???杩?绠?
琛ㄨ揪寮?璇?瑷???????绠???杩?绠?绗????昏?杩?绠?绗???甯稿?锛???????ava璇?瑷?????????绠???杩?绠?绗??琛ㄨ揪寮?璇?瑷??藉??浠ヤ嬌???
????ava璇?瑷?涓???????涓?浜?绠???杩?绠?绗????昏?杩?绠?绗??琛ㄨ揪寮?璇?瑷?涔???????
Code
<%@?page?contentType="text/html;?charset=gb2312"%>
<html>
<head>
<title>琛ㄨ揪寮?璇?瑷??-?绠???杩?绠?绗?lt;/title>
</head>
<body>
<h2>琛ㄨ揪寮?璇?瑷??-?绠???杩?绠?绗?lt;/h2>
<hr>
<table??bgcolor="aaaadd">
<tr>
<td><b>琛ㄨ揪寮?璇?瑷?</b></td>
<td><b>璁$??缁???</b></td>
</tr>
<!--??存?ヨ??哄父???-->
<tr>
<td>\${1}</td>
<td>${1}</td>
</tr>
<!--?璁$????娉??-->
<tr>
<td>\${1.2?+?2.3}</td>
<td>${1.2?+?2.3}</td>
</tr>
<!--?璁$????娉??-->
<tr>
<td>\${1.2E4?+?1.4}</td>
<td>${1.2E4?+?1.4}</td>
</tr>
<!--?璁$????娉??-->
<tr>
<td>\${-4?-?2}</td>
<td>${-4?-?2}</td>
</tr>
<!--?璁$??涔?娉??-->
<tr>
<td>\${21?*?2}</td>
<td>${21?*?2}</td>
</tr>
<!--?璁$???ゆ??-->
<tr>
<td>\${3/4}</td>
<td>${3/4}</td>
</tr>
<!--?璁$???ゆ??-->
<tr>
<td>\${3?div?4}</td>
<td>${3?div?4}</td>
</tr>
<!--?璁$???ゆ??-->
<tr>
<td>\${3/0}</td>
<td>${3/0}</td>
</tr>
<!--?璁$??姹?浣??-->
<tr>
<td>\${10%4}</td>
<td>${10%4}</td>
</tr>
<!--?璁$??姹?浣??-->
<tr>
<td>\${10?mod?4}</td>
<td>${10?mod?4}</td>
</tr>
<!--?璁$??涓???杩?绠?绗β?-->
<tr>
<td>\${(1==2)???3?:?4}</td>
<td>${(1==2)???3?:?4}</td>
</tr>
</table>
</body>
</html>
<%@?page?contentType="text/html;?charset=gb2312"%>
<html>
<head>
<title>琛ㄨ揪寮?璇?瑷??-?绠???杩?绠?绗?lt;/title>
</head>
<body>
<h2>琛ㄨ揪寮?璇?瑷??-?绠???杩?绠?绗?lt;/h2>
<hr>
<table??bgcolor="aaaadd">
<tr>
<td><b>琛ㄨ揪寮?璇?瑷?</b></td>
<td><b>璁$??缁???</b></td>
</tr>
<!--??存?ヨ??哄父???-->
<tr>
<td>\${1}</td>
<td>${1}</td>
</tr>
<!--?璁$????娉??-->
<tr>
<td>\${1.2?+?2.3}</td>
<td>${1.2?+?2.3}</td>
</tr>
<!--?璁$????娉??-->
<tr>
<td>\${1.2E4?+?1.4}</td>
<td>${1.2E4?+?1.4}</td>
</tr>
<!--?璁$????娉??-->
<tr>
<td>\${-4?-?2}</td>
<td>${-4?-?2}</td>
</tr>
<!--?璁$??涔?娉??-->
<tr>
<td>\${21?*?2}</td>
<td>${21?*?2}</td>
</tr>
<!--?璁$???ゆ??-->
<tr>
<td>\${3/4}</td>
<td>${3/4}</td>
</tr>
<!--?璁$???ゆ??-->
<tr>
<td>\${3?div?4}</td>
<td>${3?div?4}</td>
</tr>
<!--?璁$???ゆ??-->
<tr>
<td>\${3/0}</td>
<td>${3/0}</td>
</tr>
<!--?璁$??姹?浣??-->
<tr>
<td>\${10%4}</td>
<td>${10%4}</td>
</tr>
<!--?璁$??姹?浣??-->
<tr>
<td>\${10?mod?4}</td>
<td>${10?mod?4}</td>
</tr>
<!--?璁$??涓???杩?绠?绗β?-->
<tr>
<td>\${(1==2)???3?:?4}</td>
<td>${(1==2)???3?:?4}</td>
</tr>
</table>
</body>
</html>
涓??㈤〉??腑绀鴻??浜?琛ㄨ揪寮?璇?瑷?????????????????涔????ゃ??姹?浣?绛?绠???杩?绠?绗??????斤?璇昏?????戒????頒?琛ㄨ揪寮?璇?瑷?杩?????div??mod绛?杩?绠?绗???
??涓?琛ㄨ揪寮?璇?瑷????????闆?奸?藉???娴??規?闆???锛???浠?/0??瀹?璐ㄦ??3.0/0.0锛?寰??扮???搴?璇ユ??Infinity??
濡?????瑕??ㄦ????琛ㄨ揪寮?璇?瑷???椤甸??腑姝e父杈??衡??$??绗??鳳????ㄢ??$??绗??峰????杞?涔?瀛?绗???\??锛?????绯葷?浠ヤ負??$????琛ㄨ揪寮?璇?瑷????規????璁般??
EL?崇郴杩?绠?绗?
?崇郴杩?绠?绗? | 璇存?? | ??渚? | 缁??? |
== ?? 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 | 澶т?绛?浜? | 5}??${3ge5} | false |
琛ㄨ揪寮?璇?瑷?涓?浠????ㄦ?闆??涓??闆??涔??存??杈?锛?杩????ㄥ??绗??瀛?绗???存??杈?锛?瀛?绗?覆??姣?杈????規???跺?瑰?UNICODE?兼?ユ??杈?澶у?????
娉ㄦ??锛??ㄤ嬌??L ?崇郴杩?绠?绗??訛?涓??藉?????锛?
${param.password1} = =${param.password2}
????
${ ${param.password1 } = = ${param.password2 } }
??搴?????
${ param.password1 = =param.password2 }
EL?昏?杩?绠?绗?
?昏?杩?绠?绗? | ??渚? | 缁??? |
&&??and | 浜ら??${A && B}??${A and B} | true/false |
||??or | 骞堕??${A || B}??${A or B} | true/false |
!??not | ??${! A }??${not A} | true/false |
Empty 杩?绠?绗?
Empty 杩?绠?绗?富瑕??ㄦ?ュ?ゆ???兼????負绌猴?NULL,绌哄??绗?覆锛?绌洪????锛???
?′歡杩?绠?绗?
${ A ? B : C}