其余更多java基础文章: java基础学习(目录)java
EL 全名为Expression Language。JSP中可使用EL表达式,EL表达式是用"${}"括起来的脚本,用来更方便地读取对象,EL表达式写在JSP的HTML代码中,而不能写在"<%%>"引发的JSP脚本中web
EL表达式的功能:数组
使用EL表达式获取数据语法:"${标识符}"cookie
语法:${运算表达式},EL表达式支持以下运算符:
1)关系运算发
session
2)逻辑运算符
app
3)empty运算符:检查对象是否为null(空),${!empty(list)}函数
4)二元表达式:${user!=null?user.name :""}post
5)[ ] 和 . 号运算符学习
EL表达式语言中定义了11个隐含对象,使用这些隐含对象能够很方便地获取web开发中的一些常见对象,并读取这些对象的数据。测试
分析:
pageScope、requestScope、sessionScope、applicationScope表明四个做用域对象(用于保存属性的Map对象)
pageContext:表示的是JSP中内置对象pageContext,能获取request等其余JSP八大内置对象
param:表示一个请求参数, ${param.username}等效 request.getParameter("username");(表示一个保存了全部请求参数的Map对象)
paramValues:表示一组请求参数,${paramValues.abc}等效request.getParameterValues("abc");这种多选框(表示一个保存了全部请求参数的Map对象,它对于某个请求参数,返回的是一个string[])
header:表示一个请求头,${header.referer}等效request.getHeader("referer");
headerValues:表示一组请求头,${header.cookie}等效 request.getHeaders("cookie");获取的请求头参数中的内容是一组内容,好比cookie就有能够是多个cookie一块儿传过来
cookie:得到cookie对象(表示一个保存了全部cookie的Map对象)
initPatam:web项目初始化参数,servletContext.getInitParameter("xxx");(表示一个保存了全部web应用初始化参数的map对象)
注意1:还有一种特殊的用法,直接获取对象变量${user.username},user为User的一个实例对象,而且存放在page做用域中,上面这句代码的意思是,依次从page、request、session、application做用域查找user对象,直到找到为止,底层使用的是pageContext.findAttribute(); 是同样的效果。
注意2:测试header和headerValues或者有些参数时,若是头里面有“-” ,例Accept-Encoding,则要header["Accept-Encoding"]、headerValues["Accept-Encoding"] 测试cookie时,例${cookie.key}取的是cookie对象,如访问cookie的名称和值,须${cookie.key.name}或${cookie.key.value}
EL表达式比较简单,使用它的目的是为了减小JSP脚本,尽可能不要在HTML中嵌入Java代码,显的很混乱,而在HTML中使用EL表达式,就比较好来获取JSP中各类对象,获取四大做用域中的值,
最主要的是要记得EL中有哪11个内置对象,知道了他们就知道了EL能够获取哪些信息。