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表达式的作用
El表达式获取对象数据的属性
${作用域范围标识.对象名.属性}
例如 ${pageScope.b.bookId}
El表达式中 .属性 底层实际上调用属性的getXxx() , 而且el表达式只认getXxx()

需要注意的是:

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

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

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

  1. 数学运算: + - * / % (注意这些运算只能是数字进行运算不能是字符串)
  2. 关系运算: > >= < <= == != (==是可以判断字符串的)
  3. 逻辑运算:&& || !
  4. 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”

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清如许.

整理不易,点滴助力就是不竭动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值