什么是EL表达式,作用是什么
El表达式全称exception language
作用:替代jsp的表达式脚本进行表达式输出;
<%
request.setAttribute("key","value");
%>
<%=
request.getAttribute("key")
%>
${key}
特点
(1)el表达式在输出null时输出的是空字符串,表达式脚本输出的是null字符串
(2)当四个域中都有相同的key时,el表达式会按照从小到大的顺序从四个域中搜素数据,找到就输出。
pageContext:当前jsp页面有效;
request:一次请求内有效;
session:一次会话范围内有效(会话是指打开浏览器访问服务器,知道关闭浏览器)
application:整个web工程内都有效(只要web工程不停,数据就在。)
(3)el表达式在输出对象的属性时,本质上是调用的getXX()方法,只要有getXX()方法,哪怕是没有XX相对应的属性,也可以得到XX对应的值;
El表达式关系运算:
el表达式可以输出关系运算的结果
例如:${a>b} ;结果输出true
关系运算符:
eq ==
ne !=
lt <
gt >
le <=
ge >=
EL表达式.运算和[]运算:
.运算可以输出bean对象中某个属性的值;
[]运算可以输出有序集合中某个元素的值,还可以输出map中key名字有特殊字符的key的值;
特殊字符包括:关系运算符,算数运算符,逻辑运算符,点运算符,还有各种的符号,比如?,!…
empty运算:
empty可以判断一个值是否为空,为空输出true,反之为false;
有以下几种情况为空:
1.值为null;
2.值为空串;
3.值为object类型的数组,长度为0;
4.list集合,长度为0;
5.map集合,长度为0;
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,Object> 可以获得请求参数的值
paramvalues map<String,Object[]> 可以获得请求参数的值(多个)
header map<String,Object> 可以获得请求头的信息
headerValues map<String,Object[]> 可以获得请求头信息,可以获得多个值的情况
cookie map<String,Object> 可以获得当前请求的cookie信息
initParam map<String,Object> 可以获得在web.xml里配置的<context-param>上下文参数
PageContext的用法:
1.协议: ${pageContext.request.scheme};
2.服务器ip:${pageContext.request.serverName};
3.服务器端口:${pageContext.request.serverPort};
4.获取工程路径:${pageContext.request.contextPath};
5.获取请求方法:${pageContext.request.method};
6.获取客户端ip地址:${pageContext.request.remoteHost}
7.获取会话的ip编号:${pageContext.session.id}