Jsp中的EL表达式

简介: Jsp中的EL表达式

1、 el表达是什么

  • a) Expression language 表达式语言。
  • b) 可以获取作用域里面的数据。
  • c) El表达式得到的变量可以做一些运算。

语法:${作用域.key}
作用域:pageScope,requestScope,sessionScope,applicationScope

2、 为什么要学习el表达式

  • a) 虽然在jsp里面可以通过<% %>标签写java代码,但是在jsp里面写java代码跟在servlet里面写html代码一样的麻烦。
  • b) Jsp里面有java代码使jsp的可读性减低。
  • c) El和jstl可以使jsp中不出现java代码。

3、EL表达式的作用

作用:用来代表输出脚本<%= %>在页面展示数据

El表达式获取对象数据的属性

${作用域范围标识.对象名.属性}

例如 ${pageScope.b.bookId}

El表达式中 .属性 底层实际上调用属性的getXxx() , 而且el表达式只认getXxx()


需要注意的是:

  • A.当作用域里面没有该键时,el打印的是空字符串,而不是null。
  • B.El表达式里面的作用域是可以省略的。当el表达式省略作用域时,表示表达式会依次从小作用域往大作用域里面找key,直到找到为止。

4、EL表达式可以进行运算

语法:${作用域.key 运算符 变量值}

数学运算: + - * / % (注意这些运算只能是数字进行运算不能是字符串)


关系运算: > >= < <= == != (==是可以判断字符串的)


逻辑运算:&& || !


Empty运算 ${empty 作用域的命名属性} (empty 注意既可以判断是否为空又可以判断是否为空字符串)

true: 作用域中不包含该命名属性

false: 作用域中包含该命名属性

5、el表达式内置对象

a) pageContext 类似于jsp内置对象pageContext

获取其它8个jsp内置对象

Jsp中 pageContext.getRequest()

pageContext.getSession();

pageContext.getServletContext(); --> application


El表达式中:

${pageContext.request}

${pageContext.session}

${pageContext.servletContext}


项目有一个问题,项目中用到项目名的时候都是固定写死的。代码的可重用性会降低。我们可以通过java代码动态的获取到项目名。

String path=request.getContextPath();

如何通过el表达式获取项目名呢?

${pageContext.request.contextPath}


b) param 获取client传递来的数据

Get方式:http://ip地址:port/项目名/url-pattern?name名=value值&name名=value值

Post方式:form表单 请求体中发送 name名=value值


Servlet获取client数据:request.getParameter(“name名”);

JSP中获取client数据:<% request.getParameter(“name名”); %>

使用el表达式获取: ${param.name名}


c) cookie 获取浏览器发送来的cookie

Cookie和param

El表达式可以直接获取cookie里面存储的数据。

$ {cookie.cookie标记.value}

El表达式可以通过param获取到请求jsp时传递的参数。${param.name}


Cookie c = new Cookie(“name名”,”value值”);

${cookie.cookie的name名} //获取cookie对象

${cookie.cookie的name名.name}//获取的cookie对象的name属性值


${cookie.cookie的name名.value} //获取cookie对象的value属性值【重点】


Cookie c = new Cookie(“username”,”xushy”);


${cookie.username.name} ==> “username”

${cookie.username.value} ==> “xushy”


Cookie c = new Cookie(“JSESSIONID”,”2893749743AbCD”);


${cookie.JSESSIONID.name} > ”JSESSIONID”

${cookie.JSESSIONID.value}>”2893749743AbCD”


目录
相关文章
|
7月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 8
**JSP EL简化了JavaBean数据访问,支持算术和逻辑表达式,允许使用数字、字符串及布尔值。示例展示如何获取HTTP头信息:`${header[&quot;user-agent&quot;]}`显示&quot;user-agent&quot;头信息。`header`单值,`headerValues`为数组。**
40 0
|
7月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 7
**JSP EL简化了JavaBean数据访问,支持算术和逻辑表达式,允许使用数字、字符串及布尔值。示例展示如何获取请求参数:`${param.order}`或`${param[&quot;order&quot;]}`代表`order`参数,`${param[&quot;username&quot;]}`用于获取`username`。`param`对象返回单个字符串,`paramValues`返回字符串数组。**
44 0
|
7月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 6
**JSP EL简化了JavaBean数据访问,支持算术和逻辑表达式,以及整数、浮点数等类型。隐含对象如pageScope、requestScope等代表不同作用域,便于访问请求参数、HTTP头信息和Cookie等。通过scope对象,如applicationScope,可直接在表达式中访问不同层次的变量,如`applicationScope.box`。**
41 0
|
7月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 5
**JSP EL简化了JavaBean数据访问,支持数学和逻辑表达式,以及类型如整数、浮点数、字符串和布尔值。它有9个隐含对象,包括不同作用域的对象、请求参数、HTTP头、初始化参数和Cookie等。例如,使用`pageContext.request.queryString`可获取请求的查询字符串。**
36 0
|
7月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 4
**JSP EL简化了JavaBean数据访问,支持算术和逻辑表达式,包含整数、浮点数等类型。核心特性是隐含对象,如** `pageScope` **、** `requestScope` **到** `applicationScope` **,以及** `param` **、** `cookie` **和** `pageContext` **等,它们可在表达式中作为变量使用。实例演示有助于深入理解。
35 0
|
7月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 3
**JSP表达式语言(EL)**简化了JavaBean数据访问,支持算术和逻辑表达式,允许使用整数、浮点数、字符串及布尔值。**EL函数**通过命名空间引用,如 `${ns:func(param1, param2)}`,例如`fn:length`用于计算字符串长度。要使用函数,需先在服务器安装相关标签库,并在JSP中用`&lt;taglib&gt;`导入。
29 0
|
7月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 2
**JSP表达式语言(EL)简化了JavaBean数据访问,支持算术和逻辑运算,如加(+), 减(-), 乘(*), 除(/), 模(%), 等于(==), 不等于(!=), 以及逻辑操作符(and, or, not)。EL还允许使用点(.), 方括号([])来访问属性和数组,以及测试空值(empty)。**
34 0
|
7月前
|
存储 Java 编译器
JSP 教程 之 JSP 表达式语言 1
**JSP EL**简化了JavaBean数据访问,用于创建算术和逻辑表达式。它支持整数、浮点数、字符串及布尔值。`${expr}`是表达式语法,`.`和`{}`用于访问属性。例如,设置JavaBean属性值:`&lt;jsp:setProperty name=&quot;box&quot; property=&quot;perimeter&quot; value=&quot;${2*box.width+2*box.height}&quot; /&gt;`。
45 0
|
8月前
|
存储 XML SQL
jsp、EL表达式、Jstl使用
jsp、EL表达式、Jstl使用
|
存储 设计模式 JavaScript
掌握JavaWeb开发的必备技能:Servlet、JSP、Cookie、Session、EL、JSTL详解 ~~~~B站老杜--Servlet-JSP-课堂笔记(三)
当某个特殊的事件发生(特殊的事件发生其实就是某个时机到了。)之后,被web服务器自动调用。 思考一个业务场景
92 0