【Javaweb】——EL(Expression Language)
EL(Expression Language)
- 定义:
- EL表达式语言只能在JSP文件使用
- 主要用于简化对JSP文件内置对象操作步骤
- 书写格式类似Xpath
- 标准语法格式: ${四大作用域对象别名.关键字}
通知Tomcat将指定的作用域对象中关键字内容读取并输出到用户
浏览器 - EL表达式作用域对象别名
JSP文件 : application session request pageContext
EL表达式: applicationScope sessionScope requestScope pageScope
-
EL表达式简化版: ${关键字}
-
Tomcat是如何执行EL表达式简化版
由于在简化版并没有指定作用域对象;
所以Tomcat首先回到[pageContext]寻找对应关键字,如果有就读取输出并结束,
如果没有.Tomcat就会到[request]寻找对应关键字, 如果有就读取输出并结束,
如果没有.Tomcat就会到[session]寻找对应关键字, 如果有就读取输出并结束,
如果没有. Tomcat就会到[application]寻找对应关键字, 如果有就读取输出并结束,
如果没有,此时输出一个空字符串并结束
-
EL表达式简化版存在问题:
-
降低运行效率;
-
增加定位错误几率
-
EL表达式简化版应用场景
专门应用于从[pageContext]读取数据时,推荐使用格式 -
EL表达式对于读取的数据可以进行简单运算管理
- 简单数学运算(+,-,*,/,%,++,–)
- 简单关系运算( >, >=, <, <=, ==,!=)
(gt, ge, lt, le, eq,!=) - 简单逻辑运算(&&,||,!)
9. EL表达式其它内置对象介绍
- param: 请求参数内置对象;读取来自于浏览器发送请求参数内容
${param.请求参数名称} 通知Tomcat
request.getParameter(“请求参数名称”) - initParam:获取web.xml中内的参数,${ initParam.xxx},xxx就是标签内的值,进而得到中的值
- cookie:用于获取cookie,Map<String,Cookie>,其中key是cookie的name,value是cookie对象,例如${cookie.JSESSIONID.value }就是获取sessionId
- pageContext:可以获取JSP九大内置对象,相当于使用该对象调用getxxx()方法,例如pageContext.getRequest()可以写为${pageContext.request)