原文地址:https://blog.csdn.net/qq_17045385/article/details/54799998

EL是JSP内置的表达式语言

JSP2.0开始,不让再使用Java脚本,而是使用EL表达式和动态标签来代替Java脚本

############EL替代的是<%=... %>,也就是说EL只能做输出###########

EL可以输出的东西都在11个内置对象中,11个内置对象,其中10个是Map,只有pageContext不是Map,它就是PageContext类型,EL所有内置对象如下:

pageScope:获取pageContext域属性,相当于pageContext.getAttribute("xxx")

requestScope:获取request域属性,相当于request.getAttribute("xxx")

sessionScope:获取session域属性,相当于session.getAttribute("xxx")

applicationScope:获取application域属性,相当于application.getAttribute("xxx")

param:对应参数,它是一个Map,其中key是参数,value是参数值,适用于单值的参数,相当于request.getParameter("xxx")

paramValues:对应参数,她是一个Map,其中key是参数,value是多个参数值,适用于多值的参数,相当于request.getParameterValues("xxx")

header:对应请求头,它是一个Map,其中key表示头名称,value是单个头值,适用于单值的请求头,相当于request.getHeader("xxx")

headerValues:对应请求头,它是一个Map,其中key表示头名称,value是多个头值,适用于多值的请求头,相当于request.getHeaders("xxx")

initParam:获取web.xml中<context-param>内的参数,${ initParam.xxx},xxx就是<param-name>标签内的值,进而得到<param-value>中的值

cookie:用于获取cookie,Map<String,Cookie>,其中key是cookie的name,value是cookie对象,例如${cookie.JSESSIONID.value }就是获取sessionId

pageContext:可以获取JSP九大内置对象,相当于使用该对象调用getxxx()方法,例如pageContext.getRequest()可以写为${pageContext.request)

      ######这也解释了 为什么要通过pageContext来获取其他 jsp 内置对象

EL表达式在获取Map的值或Bean的属性值是,可以使用“点”的方法,也可以使用“下标”的方法。

${initParam.a}与${initParam['a']},它们是完成的东西相同的。但是,如果Map的键或Bean的属性名中包含下划线或横岗时,那么就必须使用“下标”方法,例如:${initParam['a_a']}
---------------------
作者:星空dream
来源:CSDN
原文:https://blog.csdn.net/qq_17045385/article/details/54799998
版权声明:本文为博主原创文章,转载请附上博文链接!

Jsp内置对象为什么要通过pageContext获取

最佳(实际并不)回答中,网友评论中的回答:

烦恼收发室2017-06-06 22:06
request 和 pageContext 都是 JSP 的内置对象(9个对象),可在 JSP 脚本内部直接使用 EL 用来代替脚本,提供了11个内置对象。包含 pageContext,但是不包含 request pageContext 又可以获取其他8个对象,又可以代理其他域。 所以再 EL 表达式内,需要这样使用 btw,JSTL 是 EL 表达式的一种标签形式的扩展
 
如果是写JSP,其实在JSP页面中是不能有Java代码的,所有的Java代码都需要使用自定义标签来封装,因此,其实这些方法都是在自定义标签中使用,而在自定义标签中,我们就无法使用另外八大隐式对象了,只能使用pageContext,因此在自定义标签中必须利用pageContext来获取其他隐式对象。
 
另外参考:
这两篇还没好好看
 

转:EL表达式的11个内置对象的更多相关文章

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

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

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

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

  3. 四大域对象,和jsp的九大隐式对象,已经el表达式的11个隐式对象

    四大域对象 1.PageContext :页面范围的数据 2.ServletRequest:请求范围的数据 3.HttpSession:回话范围的数据 4.ServletContext:应用范围的数据 ...

  4. EL 11个内置对象

    JSP开发人员可以在EL表达式中使用EL隐式对象,而不用任何显式的编码或声明.语法如下: ${隐式对象名} <!-- 获取EL隐式对象的引用 --> 在JSP页面中,可以使用JSP脚本来  ...

  5. JSP 4个域对象-9个内置对象-11个EL隐式对象

    一. 四大域对象 1. PageContext :页面范围的数据 2. ServletRequest:请求范围的数据 3. HttpSession:会话范围的数据 4. ServletContext: ...

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

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

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

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

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

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

  9. Java EE JSP内置对象及表达式语言

    一.JSP内置对象 JSP根据Servlet API规范提供了一些内置对象,开发者不用事先声明就可使用标准变量来访问这些对象. JSP提供了9种内置对象: (一).request 简述: JSP编程中 ...

随机推荐

  1. 《软件测试自动化之道》读书笔记 之 基于反射的UI测试

    <软件测试自动化之道>读书笔记 之 基于反射的UI测试 2014-09-24 测试自动化程序的任务待测程序测试程序  启动待测程序  设置窗体的属性  获取窗体的属性  设置控件的属性  ...

  2. 安装oracle遇到的故障

    安装oracle遇到的故障 安装oracle遇到的故障总结 os:centos4.7(64位)db版本:oracle10.0.2.1(64位) 这次安装oracle又遇到点小问题,每次都是遇到点小问题 ...

  3. Java知多少(11)数据类型转换

    数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换:强制类型转换则必须在代码中声明,转换顺序不受限制. 自 ...

  4. Java知多少(98)Graphics类的绘图方法

    Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力.本节讲解Graphics类,下节讲解Graphics2D. Graphics类提供基本的几何图形绘制方法,主要有:画线段 ...

  5. 【转】燃烧吧,TestMice!

    ...当我们几个人碰面的时候,就感觉应该做点测试业内的实事. 记得当时的17站出了一些QTP辅件,给了我一些灵感.2008年做了一整年的QTP企业级实施,从方案到最后的收尾支持,得到最大的教训就是,当 ...

  6. 上网爱快?EasyRadius FOR 爱快V2接口测试版正式推出,欢迎广大爱迷们测试噢

    …… …… 有些人问:为什么上面要打省略号?那些因为此处省略无数字,但是我还是要和大伙们谈谈EasyRadius支持爱快的故事 早在2013年的时候,我们内部就有发布爱快接口,但是由于当时V1的爱快, ...

  7. 0x800f0845 更新1803报错

    Windows 10累积更新KB4056892可能并不兼容AMD处理器,采用AMD Athlon 64 X2处理器的设备至少存在两起报告.

  8. 生产环境使用nginx做负载均衡配置的五种策略

    nginx的upstream目前支持5种方式的分配1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight指定轮询几率,weight和访 ...

  9. Centos7 安装PHP7版本及php-fpm,redis ,php-redis,hiredis,swoole 扩展安装

    ============================PHP7.1 ========================================= 1. 更换rpm 源,执行下面两个 rpm - ...

  10. Flask框架(1)-程序基本结构

    1. 安装Flask 1.1 安装虚拟环境 mkdir myproject cd myproject py -3 -m venv venv #Linux系统: python3 -m venv venv ...