一、 简介

  > JSP表达式 <%= %> 用于向页面中输出一个对象。

  > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段。

  > 使用EL表达式来代替JSP表达式 ,使用JSTL标签来代替JSP脚本片段。

  > EL表达式用来向页面输出内容,仅仅对四个域起作用,仅仅可以在jsp页面中使用,在html页面中不可以使用!

    getAttribute();//四个域对象都可以使用//作用不是接收请求参数,在使用getAttribute方法之前必须先使用setAttribute()将属性对方法域对象中;返回Object类型!

    getParameter()://仅仅是request使用!用于接收请求参数【url,form表单中】;返回值String类型

二、 基本语法

  > ${表达式}

  > EL表达式可以从域中获取属性。

    - 使用 ${属性名}

    - 如果只填写一个属性名,EL表达式会自动做全域查找。

    - 所谓的全域查找,就是按照pageScope requestScope sessionScope applicationScope四个域范围内分别,找到就返回属性,如果没找到什么都不返还。

    - 我们还可以指定去哪个域查找
      pageScope
      requestScope
      sessionScope
      applicationScope

    - 例子:

      查找request中属性
        ${requestScope.属性名}

      查找session中的属性
        ${sessionScope.属性名}

    - 注意:EL表达式只能获取域中的属性

    EL表达式不能直接调用对象的方法

    - 通过EL表达式读取对象的属性时,只需要${对象.属性名}

    EL表达式会自动调用对象的对应的getter方法,通过将属性名首字母大写,然后加上一个get的方法

    我们只需要将方法名去掉get,并将首字母小写,如getName,只需要写成name,调用其他方法也是如此

    实际上是调用了对应的方法

    注意:只要有属性,就可以一直点下去,也就说对象的属性是对象的话,我们也可以通过对象的属性的属性的方式调用!

    - 当读取一些名字比较特殊的属性时,这种特殊值必须要指定域,例如属性名带-,或属性名为数字:
      ${requestScope['属性名']}

三、 隐含对象

  > EL中一共有11个内置对象。

    - pageContext

      类型 PageContext
      它和JSP中pageContext是一个东西
      作用 可以获取到JSP中其他的隐含对象

      例如:可以获取项目名:
        ${pageContext.request.contextPath }

      例如:可以作为base标签的href属性
        <base href="http://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/" />
          表示设置页面的相对路径前缀为http://localhost:8080/项目名/

    - pageScope

      类型:Map<String,Object>
      代表:page域中的属性
      作用:可以获取到page域中的属性

    - requestScope

      类型:Map<String,Object>
      代表:request域中的属性
      作用:可以获取到request域中的属性

    - sessionScope

      类型:Map<String,Object>
      代表:session域中的属性
      作用:可以获取到session域中的属性

    - applicatScope

      类型:Map<String,Object>
      代表:application域中的属性
      作用:可以获取到application域中的属性

    - param

      类型: Map<String , String>
      代表:用户发送的请求参数
      作用:可以获取请求参数
      用法: ${param.参数名}

    - paramValues

      类型:Map<String , String[]>
      代表:一个请求参数对应的多个值
      用法: ${paramValues.参数名[索引]}

    - header

      作用:可以获取到用户发送的请求头
      类型:Map<String , String>
      例如:获取用户的系统信息 ${header['User-Agent']}

    ? - headerValues

      类型: Map<String , String[]>
      作用:可以获取一个头的多个值

    ? - initParam

      类型:Map<String , String>
      作用:获取整个WEB应用的初始化参数

    ? - cookie

      类型:Map<String , Cookie>
      作用:用来获取Cookie

四、 运算

   > 在EL中可以直接使用运算符进行运算。

    > 在EL中可以使用Empty元素符:
        如果值为null , empty则返回 true
        如果为空串, 则返回 true
        空的集合 返回true

    > 所以empty元素符经常用来判断集合或者字符串是否为空

EL表达式的语法介绍及九大隐含对象的更多相关文章

  1. JSP——九大隐藏对象之四大域对象

    你一定在你的Jsp文件中的监本片段中使用过以下九个对象的几种:out.config.page.pageContext.exception.request.response.application.se ...

  2. EL表达式的简单介绍

    EL表达式的简单介绍 一.JSP EL语言定义 E L(ExpressionLanguage)  目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于ECMAScript 和 XPath 表达式 ...

  3. EL表达式的语法与应用

    EL(是Expression Language的缩写),使用EL对JSP输出进行优化,可以使得页面结构更加清晰,代码可读性高,也更加便于维护. EL表达式的语法: 语法:$(EL 表达式) $  和 ...

  4. javaweb之jsp的九个隐含对象与基本语法

    1.在页面上可以不用声明直接使用的对象称为jsp页面的隐含对象.使用<% %>编写的java代码在_jspService方法中,如下: public void _jspService(fi ...

  5. 在EL表达式或者Struts标签库中格式化日期对象,即将Date转换为yyyy-MM-dd格式

    一.EL表达式 首先,在jsp页面引入<fmt> tags,<%@ taglib prefix="fmt" uri="http://java.sun.c ...

  6. javaWEB总结(12):JSP页面的九个隐含对象

    前言 jsp本质上是一个servlet,而在jsp中有九个不用声明就可以使用的对象,我们叫他隐含对象.本文基于上文所写,如有需要可查看上一篇文章javaWEB总结(11):JSP简介及原理. 打开上次 ...

  7. Jsp的九个隐含对象

    JSP的9个隐含对象(内置对象) 不需要预先声明,就可以在jsp或者表达式中随意使用 out javax.servlet.jsp.JspWriter类型,代表输出流的对象.作业域:页面的执行期. re ...

  8. jsp上的九个隐含对象

    首先说一说件jsp的原理.jsp被认为最经典的解释是  “嵌入了java 代码的html”. 在网上查了一些资料,和我本身对jsp的认识,总结如下: jsp本质上是一个servlet,继承自 当第一次 ...

  9. javaweb学习总结(二十九)——EL表达式

    一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...

随机推荐

  1. Django 模版当中使用中文 UnicodeDecodeError at / 问题

    Django 再次是当中字符编码问题 今天使用了bootstrap 当中的一些CSS 对自己的博客项目当中的一些东西进行美化 但是很奇怪的是 当 诸如按钮类的加入 中文字符后 就会提示 Unicode ...

  2. AngularJS学习笔记(四) 自定义指令

    指令(directive)是啥?简单来说就是实现一定功能的XXX...之前一直用的ng-model,ng-click等等都是指令.当我有一个ng没提供的需求的时候,就可以自定义个指令.指令的好处显而易 ...

  3. hibernate复习第(三)天

    今日要点: 1.继承关系映射 一个表对应一个映射树(subclass) 一个子类一个表,子类只有父类没有的字段(joined-subclass) 鉴别器和内连接结合使用(subclass join) ...

  4. 使用 nginx 和 rtmp 插件搭建视频直播和点播服务器

    使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来. 首先,看一下最经典的参考文献: How to set up your own private RTMP serv ...

  5. Uva10366

    模拟乱搞 要说算法的话...乱搞算法? #include<iostream> #include<cstring> #include<algorithm> #incl ...

  6. Nhibernate 三种配置方式

    1 App.config 的配置: <?xml version="1.0" encoding="utf-8" ?><configuration ...

  7. ACM学习历程——ZOJ 3829 Known Notation (2014牡丹江区域赛K题)(策略,栈)

    Description Do you know reverse Polish notation (RPN)? It is a known notation in the area of mathema ...

  8. bzoj 4540: [Hnoi2016]序列 莫队

    题目: 给定长度为n的序列:a1,a2,-,an,记为a[1:n].类似地,a[l:r](1≤l≤r≤N)是指序列:al,al+1,-,ar- 1,ar.若1≤l≤s≤t≤r≤n,则称a[s:t]是a ...

  9. 七 内置锁 wait notify notifyall; 显示锁 ReentrantLock

    Object中对内置锁进行操作的一些方法: Java内置锁通过synchronized关键字使用,使用其修饰方法或者代码块,就能保证方法或者代码块以同步方式执行. 内置锁使用起来非常方便,不需要显式的 ...

  10. AlteraFPGA使用通用SPIFlash - 张亚群的技术专栏 - 博客频道 - CSDN.NET

    AlteraFPGA使用通用SPIFlash - 张亚群的技术专栏 - 博客频道 - CSDN.NET Altera器件有EPCS系列配置器件,其实,这些配置器件就是我们平时通用的SPIFlash,据 ...