命令格式:
_${作用域对象别名.共享数据}_;<!--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-->
