一、代码格式
${作用域对象别名.共享数据}
二、EL表达式的作用
- EL表达式是EL工具包提供的一种特殊的命令格式。
- EL表达式在JSP文件里使用。
- 负责在JSP文件上从作用域对象里读取指定的数据,并且输出到响应体中。
三、作用域对象别名
- ServletContext【application】:全局作用域对象
- HttpSession【session】:会话作用域对象
- HttpServletRequest【request】:请求作用域对象
- PageContext【pageContext】:当前页作用域对象(JSP文件独有的作用域对象,只能由当前JSP文件中使用,不能被其他Servlet或者其他JSP文件使用。)
四、EL表达式提供的作用域对象别名
JSP | EL表达式 |
---|
application | ${applicationScope.共享数据名} |
session | ${sessionScope.共享数据名} |
request | ${requestScope.共享数据名} |
pageContext | ${pageScope.共享数据名} |
五、EL表达式将引用对象的属性写入到响应体
- 代码格式:
${作用域对象别名.共享数据名.属性名}
- 作用:从作用域对象中读取到指定的共享数据关联的引用对象,并把这个引用对象的属性值写入到响应体中。
- 属性名:一定要和引用对象中的属性名完全一致。
- EL表达式不能遍历,所以没法从作用域对象中读取集合输出。
六、EL表达式简化
- 代码格式:
${共享数据名}
- 作用:EL表达式允许开发人员省略作用域对象别名。
- 如果共享数据名相同,由于没有指定作用域对象,先在pageContext中定位数据,如果没有,再到request中定位数据,如果没有,再到session中定位数据,如果没有,再到application中定位数据,如果还没有,返回null。
- 存在的隐患:容易降低程序的执行速度,容易导致数据定位错误。
- 使用目的:简化从pageContext中读取数据的过程。
七、EL表达式支持的运算表达式
- 在JSP文件有时需要将读取共享数据进行运算,然后将运算结果写入到响应体中。
- 运算表达式:
- 数学运算
- 关系运算:> >= == < <= !=
- 逻辑运算: && || !
八、EL表达式提供的内置对象
- 代码格式:
${param.请求参数名}
- 作用:从通过请求对象读取当前请求包中请求参数内容,并将请求参数内容写入到响应体中。
姓名:${param.username}<br/>
密码:${param.password}
- 代码格式:
${paramValues.请求参数名[下标]}
- 作用:如果浏览器发送的请求参数是一个请求参数下有多个值,可以用paramValues读取下标指定的值,写入到响应体中。
数字1:${paramValues.number[0]}<br/>
数字2:${paramValues.number[1]}<br/>
数字3:${paramValues.number[2]}<br/>