1、EL概述
1.1、el的作用
Jsp2.0要把HTML和CSS分离,把HTML和JavaScript分离,把java脚本替换成标签,标签的好处是
非java人员都可以使用。
jsp2.0-纯标签页面,即:不包含<%...%>,<%!%>,及<%= %>
EL(Exception Language)是一门表达式语言,它对应<%=...%>.我们知道在JSP中,表达式会被
输出,所以EL表达式也会被输出。
1.2、EL的格式
格式:${...}
例如:${1+2}
1.3、关闭EL
如果希望整个jsp忽略EL表达式,需要在page指令中指定isELIgnored = "true"
如果希望忽略某个EL表达式,可以在EL表达式之前添加 "",例如:${1+2};
1.4、EL运算符:
+
-
*
/ 或 div
% 或 mod
== 或 eq
!= 或 ne
< 或 lt
> 或 gt
<= 或 le
>= 或 ge
&& 或 and
! 或 not
|| 或 or
empty
1.5、EL不显示null
当EL表达式的值为null时,会在页面上显示空白,即什么都不显示。
2、EL表达式格式
*操作list数组:${list[0]}; ${arr[0]}
*操作bean的属性:${person.name};${person['name']} 对应person.getName()方法
*操作map的值:${map.key};${map['key']},对应map.get(key).
3、EL内置对象
EL共11个内置对象,无需创建即可以使用,这11个内置对象中有10个是Map类型的,
最后一个是 pageContext 对象。
* pageScope
* requestScope
* sessionScope
* applicationScope
* param
* paramValues
* header
* headerValues
* initParam
* cookie
* pageContext
3.1、域相关内置对象(重点)
域内置对象一共有四个
* pageScope: ${pageScope.name}等同于pageContext.getAttribute("name");
* requestScope: ${requestScope.name}等同于request.getAttribute("name");
* sessionScope:${sessionScope.name}等同于session.getAttribute("name");
* applicationScope: ${applicationScope.name}等同于application.getAttribute("name");
全域查找,${person}表示依次在pageScope,requestScope,sessionScope,applicationScope四个
域中查找名字为 person 的属性。
3.2、请求参数相关内置对象
param 和 paramValues这两个内置对象是用来获取请求参数的。
* param: Map<String,String>类型,param对象可以用来获取参数与request.getParameter()
方法相同。
注:在使用EL获取参数时,如果参数不存在,返回的是空字符串,不是null,与使用request.getParameter()
方法是不同的。
* paramValues:paramValues 是 Map<String,String[]>类型,当一个参数名对应多个参数值时使用它。
3.3、请求头相关内置对象
header 和 headerValues 是与请求头相关的内置对象
* header:Map<String,String>类型,用来获取请求头。
${header.Host}
* headerValues: headerValues 是Map<String,String[]>类型,当一个请求头名称对应多个值时,使用该对象。
3.4、应用初始化参数相关内置对象
* initParam:initParam是Map<String,String>类型,它对应web.xml文件中的<context-param>参数。
3.5、Cookie相关内置对象
* cookie: cookie是Map<String,Cookie>类型,其中key是Cookie的名字,而值是Cookie对象本身。
3.6、pageContext对象
*pageContext:pageContext是pageContext类型!可以使用pageContext对象调用getXXX()方法。
例如:pageContext.getRequest(),可以${pageContext.request},也就是读取JavaBean属性!
EL表达式 说明
${pageContext.request.queryString} pageContext.getRequest().getQueryString();
${pageContext.request.requestURL} pageContext.getRequest().getRequestURL();
${pageContext.request.contextPath} pageContext.getRequest().getContextPath();
${pageContext.request.method} pageContext.getRequest().getMethod();
${pageContext.request.protocol} pageContext.getRequest().getProtocol();
${pageContext.request.remoteUser} pageContext.getRequest().getRemoteUser();
${pageContext.request.remoteAddr} pageContext.getRequest().getRemoteAddr();
${pageContext.session.new} pageContext.getSession().isNew();
${pageContext.session.id} pageContext.getSession().getId();
${pageContext.servletContext.serverInfo} pageContext.getServletContext().getServerInfo();