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中比较字符串内容使用==

EL 11个内置对象的更多相关文章

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

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

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

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

  3. [转]【EL表达式】11个内置对象(用的少) & EL执行表达式

    1.EL的内置对象 其他不用记,红色记一下 代码: 2.EL执行表达式

  4. EL表达式的内置对象

    在EL表达式中,无需创建就可以使用的对象称之为EL隐藏(隐含.内置)对象.在EL中一共有11个隐藏对象,它们都与Map相似.其中10是Map,一个是 PageContext. 参数隐藏对象 这些隐藏对 ...

  5. jsp内置对象和el表达式

    九个内置对象 *out jsp的输出流,用来向客户端响应 *page 当前jsp页面, 它的引用数据类型是Object,即真身中有如下代码 Object page=this; *config 它对应真 ...

  6. day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)

    day12 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1="" attr2="" %>,一般都会把JSP指令放到JSP文件 ...

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

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

  8. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  9. JSP&EL 内置对象

    JSP&EL 内置对象 转载▼   具体的JSP和El中的内置对象见下表,由于我写在了excel中,也不知道怎么把excel发出来,就截了图. 相关问题: Q1: JSP:EL中 pageCo ...

随机推荐

  1. shell脚本-删除当天日期前3个月的数据表

    #!/bin/bash #author:skycheng #get current date string datestr=`date +'%Y-%m-%d'` start_time=`date +' ...

  2. linus jsch文件下载

    package com.osplat.util;import java.io.File;import java.io.FileNotFoundException;import java.io.File ...

  3. js 中的正则表达式RegExp

    1.RegExp对象 1.1 RegExp对象实例的创建 正则表达式模式:     g:表示全局模式,即模式将被用于整个字符串,而非发现第一个匹配项时立即停止:     i:表示不区分大小写,忽略大小 ...

  4. springboot org.hibernate.MappingException: No Dialect mapping for JDBC type: -9

    参考 https://www.cnblogs.com/luxd/p/8316243.html https://www.cnblogs.com/s648667069/p/6478559.html @Co ...

  5. spring jpa nativequery in与修改

    参考 https://blog.csdn.net/a3025056/article/details/79022816 @Modifying@Transactional /* 如果在事务中使用需加上此注 ...

  6. cdh5.13.1 hadoop hdfs HA模式无法启动

    经过观察日志发现,JN三个节点启动正常,只有NN节点启动时提示JN节点没有格式化 停止HDFS下面所有服务 先启动JN节点 然后启动一个NN节点,观察三个JN节点日志 发现其中一个节点的日志正常,没有 ...

  7. 替换空格(python)

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. # -*- coding:ut ...

  8. 微信小程序开发——使用promise封装异步请求

    前言: 有在学vue的网友问如何封装网络请求,这里以正在写的小程序为例,做一个小程序的请求封装. 关于小程序发起 HTTPS 网络请求的Api,详情可以参考官方文档:wx.request(Object ...

  9. 编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcome to masm!'

    80*25彩色字符模式显示缓冲区的结构: 内存地址空间中,B8000H~BFFFFH共32KB的空间,为80*25彩色字符模式的显示缓冲区.向这个地址空间写入数据,写入的内容将立即出现在显示器上. 在 ...

  10. docker搭建lnmp(一)

    因为安装过程中涉及到一些修改配置文件的步骤,由于刚尝试不太会,所以这里都是通过安装好后,进入容器修改配置,最后退出重启容器. 目录结构 docker ├── mysql │   └── dockerf ...