EL表达式
EL表达式
标准格式:
${域对象别名.关键字}:到指定域对象读取对象关键字的内容,并自动将内容写入到响应体。
JSP文件中的域对象
- application:全局作用域对象
- session:会话作用域对象
- request:请求作用域对象
- pageContext:当前页作用域对象
EL表达式域对象别名:
| JSP | EL |
|---|---|
| application | applicationScope |
| session | sessionScope |
| request | requestScope |
| pageContext | pageScope |
EL表达式将高级对象属性写入到响应体:
${域对象别名.关键字.属性名}
EL表达式简化版:
${关键字}:可以省略域对象别名
简化版工作原理:
首先到pageContext定位关键字,如果有,读取输出并结束执行。
其次到request,再次到session,最后到application,如果连application都没有找到关键字,就返回null。
弊端1:可能增加运行时间,例如数据在application,执行轨迹pageContext-->request-->session-->application
弊端2:错误定位。
【使用场景】:专门为pageContext读取数据并写入响应体(当前页作用域对象)
EL表达式支持的运算:
1.数学运算
2.关系运算
> >= < <= == !=
gt ge lt le eq !=
3.逻辑运算
&& || !
EL表达式其他内置对象
1.param:
使用:${param.请求参数名}
作用:读取请求协议包中参数内容()
代替:String value = request.getParameter("请求参数名");
out.write(value)

2.paramValues:
作用:读取请求协议包中关联多个值的请求参数,将参数内容保存到数组。
使用:${paramValues.请求参数名}
代替:String array[] = request.getParameterValues("ck");

3.initParam:
代替:String value = application.getInitParameter("driver");
使用:${initParam.共享数据名}
EL表达式的缺陷:
1.只能读取域对象数据,不能向域对象中写入数据更改数据
2.不支持控制语句 例如 if判断 while循环
如果想解决这些问题,可以去学习一下JSTL表达式。

浙公网安备 33010602011771号