EL表达式

EL表达式

标准格式:

${域对象别名.关键字}:到指定域对象读取对象关键字的内容,并自动将内容写入到响应体。

JSP文件中的域对象

  1. application:全局作用域对象
  2. session:会话作用域对象
  3. request:请求作用域对象
  4. 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)

image

2.paramValues:

​ 作用:读取请求协议包中关联多个值的请求参数,将参数内容保存到数组。

​ 使用:${paramValues.请求参数名}

​ 代替:String array[] = request.getParameterValues("ck");

image

3.initParam:

​ 代替:String value = application.getInitParameter("driver");

​ 使用:${initParam.共享数据名}

EL表达式的缺陷:

​ 1.只能读取域对象数据,不能向域对象中写入数据更改数据

​ 2.不支持控制语句 例如 if判断 while循环

如果想解决这些问题,可以去学习一下JSTL表达式。

posted @ 2021-08-10 16:05  初中生林开心  阅读(144)  评论(0)    收藏  举报