0
点赞
收藏
分享

微信扫一扫

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表达式的作用

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

Jsp中的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”



举报

相关推荐

0 条评论