一、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中不存在
2.EL表达式提供作用域对象别名
JSP EL表达式
application ${applicationScope.共享数据名}
session ${sessionScope.共享数据名}
request ${requestScope.共享数据名}
pageContext ${pageScope.共享数据名}
三、EL表达式将引用对象属性写入到响应体
1.命令格式: ${作用域对象别名.共享数据名.属性名}
2.命令作用: 从作用域对象读取指定共享数据关联的引用对象的属性值。
并自动将属性的结果写入到响应体
3.属性名: 一定要与引用类型属性名完全一致(大小写)
4.EL表达式没有提供遍历集合方法,因此无法从作用域对象读取集合内容输出
四、EL表达式简化版
1.命令格式: ${共享数据名}
2.命令作用: EL表达式允许开发人员开发时省略作用域对象别名
3.工作原理:
EL表达式简化版由于没有指定作用域对象,所以在执行时采用猜的方式获取数据
猜的顺序 pageContext--->request--->session--->application
4.存在隐患:
降低程序执行速度、容易导致数据定位错误
五、EL表达式支持运算表达式
前提: 在JSP文件有时需要将读取共享数据进行一番运算之后,将运算结果写入到响应体
数学运算、关系运算、逻辑运算
六、EL表达式提供内置对象
1.命令格式: ${param.请求参数名}
命令作用: 通过请求对象读取当前请求包中请求参数内容并将请求参数内容写入到响应体
代替了以下代码:
发送请求: Http://localhost:8080/myWeb/index.jsp?userName=hh&password=123
<%
String userName = request.getParameter("userName");
String password = request.getParameter("password");
%>
<%=userName%>
<%=password%>
2、命令格式:${paramValues.请求参数名[下标]}
命令作用: 如果浏览器发送的请求参数是一个请求参数关联多个值此时可以通过paramValues读取请求参数下指定位置的值并写入到响应体
代替了以下代码:
http://localhost:8080/myWeb/index.jsp?pageNo=1&pageNo=2&pageNo=3
<%
String array[]= request.getParameterValues("pageNo");
%>
第一个值:<%=array[0]%>
第二个值:<%=array[1]%>
七。EL表达式常见异常:
javax.el.PropertyNotFoundException:在对象中没有找到指定属性