命令格式:
_${作用域对象别名.共享数据}_
;<!--EL表达式简化代码-->
id:${applicationScope.id}
<br>
name:${sessionScope.name}
<br>
address:${requestScope.address}
命令作用:
- 1)EL表达式时EL工具包提供的一种特殊命令格式[表达式命令格式];
- 2)EL表达式在JSP文件中使用;
- 3)EL表达式负责从作用域对象中读取指定共享数据并输出到响应体;
- EL表达式作用域对象别名:
- JSP文件中可以使用的作用域对象:
- 1)
SerlvetContext application
:全局作用域对象; - 2)
HttpSession session
:会话作用域对象; - 3)
_HttpServletRequest request_
:请求作用域对象; - 4)
PageContext pageContext
:当前页作用域对象,这是JSP文件独有的作用域对象,Servlet中不存在此对象;在当前页作用域对象中存放的共享数据,仅能在当前JSP文件中使用,不能共享给其他Servlet或者JSP文件(真实开发过程中,主要用于JSTL标签与JSP文件之间的数据共享);
- 1)
- JSP文件中可以使用的作用域对象:
- EL表达式向响应体中输出引用对象内容: ```jsx <%@ page contentType=”text/html;charset=UTF-8” language=”java” %>
sNo:${requestScope.student.sNo} sName:${requestScope.student.sName} sex:${requestScope.student.sex} age:${requestScope.student.age}
- EL表达式无法遍历集合等内容;
- EL表达式简化版:
- 命令格式:`_${共享数据名}_`;
- 命令作用:允许开发人员省略作用域对象;
- 隐患:容易降低程序执行效率,没有指定作用域对象,程序运行时会从pageContext到application对象中一个一个找,也容易发生数据定位错误;
- 应用场景:设计目的就是简化从pageContext中读取共享数据并输出的难度;
- EL表达式支持运算:
- 在JSP文件中,有时需要将读取的共享数据进行运算后再写入到响应体中;
- 运算表达式:
- 1)数学运算符:`_+_`,_`-`_,_`*`_,_`/`_,_`%`_;
- 2)关系运算符:_`>`_,_`<`_,_`==`_,_`>=`_,_`<=`_,_`!=`_;
- 3)逻辑运算符:_`&&`_,_`||`_,_`!`_;
- EL表达式提供的内置对象:
- 命令格式:`_${param.请求参数名}_`;
- 作用:通过请求参数名读取当前请求包中请求参数内容,并将请求参数内容写入到响应体中;
```jsx
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!--
访问Http://localhost:8080/023web/index2.jsp?userName=zhangsan&password=123
-->
userName:${param.userName}<br>
password:${param.password}
- 命令格式:
_${paramValues.请求参数名[下标]}_
; - 作用:如果浏览器发送的请求中,某个请求参数有多个值,可以读取该请求参数指定位置的值并写入到响应体中;
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!--
访问Http://localhost:8080/023web/index3.jsp?pageNo=3&pageNo=4&pageNo=5
-->
pageNo:${paramValues.pageNo[0]} <!--pageNo:3-->
<br>
pageNo:${paramValues.pageNo[1]} <!--pageNo:4-->
<br>
pageNo:${paramValues.pageNo[2]} <!--pageNo:5-->