JSP开发人员可以在EL表达式中使用EL隐式对象,而不用任何显式的编码或声明。语法如下:

${隐式对象名}  <!-- 获取EL隐式对象的引用 -->

在JSP页面中,可以使用JSP脚本来 <% ... %> 访问JSP隐式对象(9个)。但是在免脚本的JSP页面中则不可能访问这些JSP隐式对象,因此EL提供了一组自己的隐式对象(11个)来访问不同的对象。

EL隐式对象 类型 说明
pageContext javax.servlet.jsp.PageContext  
initParam java.util.Map 包含所有环境初始化参数,key是参数名,value是参数值
param java.util.Map 包含所有请求参数,key是参数名,value是指定参数名的第一个参数值
paramValues java.util.Map 包含所有请求参数,key是参数名,value是指定参数名的所有参数值组成的字符串数组
header java.util.Map 包含请求标题,key是标题名,value是指定标题名称的第一个标题
headerValues java.util.Map 包含请求标题,key是标题名,value是指定标题名称的所有标题组成的字符串数组
cookie java.util.Map 包含当前请求对象中的所有cookie,key是cookie名称,value是cookie值
pageScope java.util.Map 包含了当前页面范围内的所有属性,key是属性名,value是属性值
requestScope java.util.Map 包含了当前HttpServletRequest对象中的所有属性,key是属性名,value是属性值
sessionScope java.util.Map 包含了当前HttpSession对象中的所有属性,key是属性名,value是属性值
applicationScope java.util.Map  包含了当前ServletContext对象中的所有属性,key是属性名,value是属性值

pageContext对象

pageContext对象跟JSP中的隐式对象pageContext相同,表示当前JSP页面的 javax.servlet.jsp.PageContext,在EL中使用该对象可以获取其他的JSP隐式对象。

${pageContext.request}         <!-- 获取JSP的内置对象 request -->
${pageContext.response}        <!-- 获取JSP的内置对象 response -->
${pageContext.out}             <!-- 获取JSP的内置对象 out -->
${pageContext.servletConfig}   <!-- 获取JSP的内置对象 config -->
${pageContext.page}            <!-- 获取JSP的内置对象 page-->
${pageContext}                 <!-- 获取JSP的内置对象 pageContext-->
${pageContext.session}         <!-- 获取JSP的内置对象 session-->
${pageContext.servletContext}  <!-- 获取JSP的内置对象 application-->
${pageContext.exception}       <!-- 获取JSP的内置对象 exception-->

initparam对象

访问初始化参数的隐式对象,用于获取上下文参数(即初始化参数)的值

${initParam["password"]}  <!-- 获取名为password的初始化参数的值 -->

param对象 和 paramValues对象

用于获取请求参数的值,param对象只能获取请求参数的第一个参数值。如果两个请求参数同名,则只能访问到第一个参数的值;params对象用于获取一个请求参数的多个值,返回所有值的字符串数组

${param["userName"]}  <!-- 获取请求参数userName的第一个值-->
${paramValues["selectedOptions"][0]}  <!-- 获取请求参数selectedOptions的第一个值 -->
${paramValues["selectedOptions"][0]}  <!-- 获取请求参数selectedOptions的第二个值 -->

header对象 和 headerValues对象

用于获取请求头部分的相关信息,header对象获取请求头中标题的第一个值,headerValues对象获取请求头中标题的所有值,返回一个字符串数组

${header["accept-language"]}
${headerValues["accept-language"][0]}

cookie对象

可以用来获取一个cookie

${cookie["jseesionid"]["value"]}  <!-- 获取jsseionid的cookie值 -->
${cookie.jssessionid.path}  <!-- 获取jsessionid的cookie的路径 -->

pageScope对象、requestScope对象、sessionScope对象、applicationScope对象

用于获取不同作用域范围内的属性值。

有界对象也可以通过没有范围的EL表达式获取。此时,JSP容器将返回PageContext、ServletRequest、HttpSession、ServletContext中第一个同名的对象,执行顺序是从最小范围到最大范围。

EL隐式对象的特点

1)EL只能获取对象的属性,不能改写,也不能直接调用方法。

2)EL中的字符串既可以使用双引号也可以使用单引号,类似于HTML

3)EL表达式在计算时会将字符串转换成数值(null --> 0)

4)EL输出null时用空串(“”)代替

5)EL不能访问局部变量,只能访问作用域中的属性

6)EL中的empty运算符将“”是为null

7)EL中比较字符串内容使用==

转载于:https://www.cnblogs.com/0820LL/p/9845374.html

EL 11个内置对象相关推荐

  1. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】...

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

  2. EL表达式的11个内置对象

    EL是JSP内置的表达式语言 JSP2.0开始,不让再使用Java脚本,而是使用EL表达式和动态标签来代替Java脚本 EL替代的是<%=... %>,也就是说EL只能做输出 EL可以输出 ...

  3. 转:EL表达式的11个内置对象

    原文地址:https://blog.csdn.net/qq_17045385/article/details/54799998 EL是JSP内置的表达式语言 JSP2.0开始,不让再使用Java脚本, ...

  4. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】(修订版)...

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 什么是EL表达式? 表达式语言(Expression ...

  5. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

  6. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】... 1

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

  7. EL表达式的内置对象(待梳理)

    EL共有11个内置对象:其中1-10是Map对象,11是PageContext对象 1.param:Map<String,String>类型,可以用来获取参数,与request.getPa ...

  8. JSP学习 三大指令、九个内置对象、JavaBean、EL表达式

    1.page-->最复杂:<%@page language="java" info="xxx"...%>* pageEncoding和cont ...

  9. python给js变量赋值_python 之 前端开发( JavaScript变量、数据类型、内置对象、运算符、流程控制、函数)...

    11.4 JavaScript 11.41 变量 1.声明变量的语法 //1. 先声明后定义 var name; //声明变量时无需指定类型,变量name可以接受任意类型 name= "eg ...

最新文章

  1. 架构师速成7.6-高中书单资料推荐
  2. 设计模式:原型模式(Prototype)
  3. 轨迹预测演变(第1/2部分)
  4. apollo重要服务之metaService
  5. [JavaScript语法学习]重新认识JavaScript
  6. android studio定位gps
  7. 通信原理中的erf/erfc函数
  8. CPC23-4-K. 喵喵的神数 (数论 Lucas定理)
  9. C++自定义列表实现贪吃蛇
  10. PMS(PackageManagerService)原理简单介绍,启动过程源码简单解析
  11. 华为、字节跳动、蔚来、康师傅、法雷奥、AIG等公司高管变动
  12. mac电脑用计算机名共享打印机,MAC与Windows7共享打印机的设置方法
  13. 怎么在宝妈论坛引流?宝妈论坛如何引流?如何引流宝妈群体
  14. paddlepaddle本地环境配置
  15. 【深度学习】01 - 图像识别
  16. 下载maven依赖的方法步骤
  17. 杭州电子商务研究院发布“独立站”新概念
  18. linux abs函数怎么用,Linux输入子系统详解
  19. ios中三种随机数方法
  20. SouthernBiotech Annexin V染色方案

热门文章

  1. c# Hello World
  2. Cocos2d-x编程中的runOnUiThread方法和runOnGLThread方法剖析
  3. java语言精粹_java 成神之路 (一)
  4. ubuntu下mysql无法启动_升级Ubuntu到10.04后MySQL无法启动
  5. 体现临床实际基线疾病活动度的早期RA患者中, 治疗起效时间对临床和放射学的影响...
  6. Oracle学习笔记:手工注册oracle的oledb驱动
  7. linux mysql csv文件_Linux MySQL数据库如何导出数据文件?导出csv语句命令
  8. JavaWeb——web.xml配置详细解读
  9. sde执行revoke SELECT ANY TABLE from sde导致报ora-29900 运算符连接不存在错误
  10. 走自己的路,记得回头看看