EL表达式
EL 表达式的全称是:Expression Language。是表达式语言。 EL 表达式的什么作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。 因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。
1
| <body> <% request.setAttribute("key","值"); %>表达式脚本输出 key 的值是: <%=request.getAttribute("key1")==null?"":request.getAttribute("key1")%><br/> EL 表达式输出 key 的值是:${key1} </body>
|
关系运算
1 2 3 4 5 6 7
| 关系运算符 说 明 范 例 结果 == 或 eq 等于 ${ 5 == 5 } 或 ${ 5 eq 5 } true != 或 ne 不等于 ${ 5 !=5 } 或 ${ 5 ne 5 } false < 或 lt 小于 ${ 3 < 5 } 或 ${ 3 lt 5 } true > 或 gt 大于 ${ 2 > 10 } 或 ${ 2 gt 10 } false <= 或 le 小于等于 ${ 5 <= 12 } 或 ${ 5 le 12 } true >= 或 ge 大于等于 ${ 3 >= 5 } 或 ${ 3 ge 5 } false
|
逻辑运算
1 2 3 4 5 6 7 8 9 10
| && 或 and 与运算 ${ 12 == 12 && 12 < 11 } 或 ${ 12 == 12 and 12 < 11 } false || 或 or 或运算 ${ 12 == 12 || 12 < 11 } 或 ${ 12 == 12 or 12 < 11 } true ! 或 not 取反运算 ${ !true } 或 ${not true } false ## 算数运算 ``` md + 加法 ${ 12 + 18 } 30 - 减法 ${ 18 - 8 } 10 * 乘法 ${ 12 * 12 } 144 / 或 div 除法 ${ 144 / 12 } 或 ${ 144 div 12 } 12 % 或 mod 取模 ${ 144 % 10 } 或 ${ 144 mod 10 } 4
|
empty可以判断一个数据是否为空
1
| <body> <% // 1、值为 null 值的时候,为空 request.setAttribute("emptyNull", null); // 2、值为空串的时候,为空 request.setAttribute("emptyStr", ""); // 3、值是 Object 类型数组,长度为零的时候 request.setAttribute("emptyArr", new Object[]{}); // 4、list 集合,元素个数为零 List<String> list = new ArrayList<>(); // list.add("abc"); request.setAttribute("emptyList", list); // 5、map 集合,元素个数为零 Map<String,Object> map = new HashMap<String, Object>(); // map.put("key1", "value1"); request.setAttribute("emptyMap", map); %>${ empty emptyNull } <br/> ${ empty emptyStr } <br/> ${ empty emptyArr } <br/> ${ empty emptyList } <br/> ${ empty emptyMap } <br/> </body>
|
三元运算
表达式 1?表达式 2:表达式 3 如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。
.和[]运算
.点运算,可以输出 Bean 对象中某个属性的值。 []中括号运算,可以输出有序集合中某个元素的值。 并且[]中括号运算,还可以输出 map 集合中 key 里含有特殊字符的 key 的值。
EL 表达式的 11 个隐含对象
pageContext PageContextImpl 它可以获取 jsp 中的九大内置对象
pageScope Map<String,Object> 它可以获取 pageContext 域中的数据
requestScope Map<String,Object> 它可以获取 Request 域中的数据
sessionScope Map<String,Object> 它可以获取 Session 域中的数据
applicationScope Map<String,Object> 它可以获取 ServletContext 域中的数据
param Map<String,String> 它可以获取请求参数的值
paramValues Map<String,String[]> 它也可以获取请求参数的值,获取多个值的时候使用。
header Map<String,String> 它可以获取请求头的信息
headerValues Map<String,String[]> 它可以获取请求头的信息,它可以获取多个值的情况
cookie Map<String,Cookie> 它可以获取当前请求的 Cookie 信息
initParam Map<String,String> 它可以获取在 web.xml 中配置的上下文参数
EL 获取四个特定域中的属性
pageScope ====== pageContext 域
requestScope ====== Request 域
sessionScope ====== Session 域
applicationScope ====== ServletContext 域
pageContext 对象的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <% pageContext.setAttribute("req", request); %><%=request.getScheme() %> <br> <% pageContext.setAttribute("req", request); %><%=request.getScheme() %> <br> 1.协议: ${ req.scheme }<br> 2.服务器 ip:${ pageContext.request.serverName }<br> 3.服务器端口:${ pageContext.request.serverPort }<br> 4.获取工程路径:${ pageContext.request.contextPath }<br> 5.获取请求方法:${ pageContext.request.method }<br> 6.获取客户端 ip 地址:${ pageContext.request.remoteHost }<br> 7.获取会话的 id 编号:${ pageContext.session.id }<br> 8.输出请求参数usename的值为${param.username}<br> 9.输出password的值为${param.password}<br> 10.输出请求参数usename的值为${paramValues.username[0]}<br> 11.输出hobby的值为${paramValues.hobby[0]}<br> 11.输出hobbyd的值为${paramValues.hobby[1]}<br> <hr> 输出请求头user-Agernt的请求值${header['User-Agent']}<br> 输出请求头Connection的值${header.Connection}<br> 输出请求头user-Agernt的请求值${headerValues['User-Agent'][0]}<br>
|
cookie获取进制队
1 2
| 获取cookie的名称${ cookie.JSESSIONID.name }<br> 获取cookie的值${ cookie.JSESSIONID.value}<br>
|
initParam获取进制队
1
| 输出initParam进制队${initParam}
|