一。EL表达式:
1.命令表达式:
${作用域对象别名.共享数据}
2.命令作用:
1)EL表达式是EL工具包提供一种特殊命令格式【表达式命令格式】
2)EL表达式在JSP文件上使用
3)负责在JSP文件上从作用域对象中获取共享数据并写入响应体中
 
二。EL表达式----作用域对象别名
1.JSP文件可以使用的作用域对象
1)ServletContext application:全局作用域对象
2)HttpSession session:会话作用域对象
3)HttpServletRequest request:请求作用域对象
4)PageContext pageContext:当前页作用域对象,这是Jsp文件里独有的作用域对象。 Servlet中不存在。在当前页作用域对象存放的共享数据仅能在当前JSP文件中使用
在真实开发中,主要用于JSTL标签与JSP文件之间共享数据
JSTL ----------------> pageContext --------------> JSP
2.EL表达式提供作用域对象别名
-------------------------------------------------------------------------------------------------------
| JSP | EL |
| application | ${appilcationScope.共享数据名} |
| session | ${sessionScope.共享数据名} |
| request | ${requestScope.共享数据名} |
| pageCOntext | ${pageScope.共享数据名} |
-------------------------------------------------------------------------------------------------------
 
三。EL表达式将引用对象属性写入到响应体中
1.命令格式:${作用域对象别名.共享属性名.属性名}
2.命令作用:从作用域对象读取指定共享数据
3.属性名:一定要与引用类型属性名完全一致(大小写)
4.EL表达式没有提供遍历集合的方法,因此无法从作用域中读取集合内容输出
 
四。EL表达式简化
1.命令格式:${公共数据名}
2.命令作用:EL表达式允许开发人员开发时省略作用域对象别名
3.工作原理:
EL表达式简化版由于没有指定作用域对象,所以执行时采用【猜】的算法
首先到【pageContext】中定位共享数据,如果存在直接读取输出并结束执行
否则,到【request】定位,接着是【session】,再到【application】
如果都没有则返回null
4.存在的隐患:
容易减低程序执行的速度
导致数据定位错误
5.应用场景/设计目的:
简化从pageContext读取数据并输出的难度
五。EL运算表达式
1.前提:在JSP文件有时需要对读取的共享数据进行一番运算之后,再将运算结果写入到响应体中
2.运算表达式:
1)数学运算:+ - * /
2)关系运算: > = == < <= !=
3)逻辑运算:
六。EL表达式提供内置对象
1、param
1.命令格式:${param.请求对象}
2.命令作用:
从通过请求对象读取当前请求包中请求参数内容并将请求参数内容写入到响应体中
3.代替命令: index.jsp
发送请求:
<%
String userName = req.getParmeter("userName");
String password = req.getParmeter("password");
%>
<%=userName%>
<%=password%>
 
1、paramValues
1.命令格式:${paramValues.请求参数名[下标]}
2.命令作用:
如果浏览器发送的请求参数关联多喝值,此时可以通过paramValues读取请求参数下指定位置的值并写入到响应体中
3.代替命令:
此时pageNo请求包以数组形式存在,pageNo:[1,2,3]
<%
String a[] = req.getparamerValues("pageNo");
%>
第一个值:<%=a[0]%>
第二个值:<%=a[1]%>
七。EL中的常见异常
javax.el.PropertyNotFoundException:在对象中没有找到指定属性
 
 posted on 2022-06-10 21:15  Slothhh  阅读(57)  评论(0编辑  收藏  举报