EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。
语法:${隐式对象名称}  :获得对象的引用
 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.yyz.User"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>隐含对象</title>
</head>
<body>
<!-- pageContext——对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)-->
${pageContext } <!-- pageContext.findAttribute("name") -->
<br/> <br/>---------------从指定的page域中查找数据------------------------<br/>
<!-- pageScope——代表page域中用于保存属性的Map对象 -->
<%
pageContext.setAttribute("name","aaa"); //map
%>
${pageScope.name } <br/>---------------从request域中获取数据------------------------<br/>
<!-- requestScope——代表request域中用于保存属性的Map对象 -->
<%
request.setAttribute("name","bbb"); //map
%>
${requestScope.name } <br/>---------------从session域中获取数据------------------------<br/>
<!-- sessionScope——代表session域中用于保存属性的Map对象 -->
${sessionScope.user } <!--applicationScope——代表application域中用于保存属性的Map对象 --> <br/>--------------获得用于保存请求参数map,并从map中获取数据------------------------<br/>
<!-- param——表示一个保存了所有请求参数的Map对象 -->
<!-- http://localhost:8080/day12/3.jsp?name=aaa -->
${param.name }
<!-- 此表达式会经常用在数据回显上 -->
<!-- 模拟的应用场景是表单提交到后台校验没有通过,回到注册页面时的数据回显 -->
<form action="${pageContext.request.contextPath }/servlet/RegisterServlet" method="post">
<input type="text" name="username" value="${param.username }">
<input type="submit" value="注册">
</form> <br/>--------------paramValues获得请求参数 //map{"",String[]}------------------------<br/>
<!-- paramValues——表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[] -->
<!-- http://localhost:8080/day12/3.jsp?like=aaa&like=bbb -->
${paramValues.like[0] }
${paramValues.like[1] } <br/>--------------header获得请求头------------------------<br/>
<!-- header——表示一个保存了所有http请求头字段的Map对象 -->
${header.Accept }
${header["Accept-Encoding"] }<!-- 通过.运算符解决不了,用[] --> <br/>--------------获取客户机提交的cookie------------------------<br/>
<!-- cookie——表示一个保存了所有cookie的Map对象 -->
<!-- 从cookie隐式对象中根据名称获取到的是cookie对象,要想获取值,还需要.value -->
${cookie.JSESSIONID.value } <br/>--------------获取web应用初始化参数------------------------<br/>
<!-- initParam——表示一个保存了所有web应用初始化参数的map对象 -->
${initParam.xxx } //servletContext中用于保存初始化参数的map
${initParam.root }
</body>
</html>

注意事项

1.测试headerValues时,如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]

2.测试cookie时,例${cookie.key}取的是cookie对象,如访问cookie的名称和值,须${cookie.key.name}或${cookie.key.value

EL表达式隐含对象的更多相关文章

  1. EL表达式获取对象属性的原理

    EL表达式获取对象属性的原理是这样的: 以表达式${user.name}为例 EL表达式会根据name去User类里寻找这个name的get方法,此时会自动把name首字母大写并加上get前缀,一旦找 ...

  2. EL的隐含对象(三)【访问环境信息的隐含对象】

    EL中提供了6个访问环境信息的隐含对象.分别是: (1)param对象 param对象用于获取请求参数的值,应用在参数值只有一个的情况.在应用param对象时,返回的结果为字符串. 例:在JSP页面中 ...

  3. el表达式获取对象属性值 返回值类型

    实现 数字页码时 遇到的一个问题. 后端servlet 在request.setAttribute("page",page); page 为pagebean的实例对象,pagebe ...

  4. EL的隐含对象 (二)【访问作用域范围的隐含对象】

    在EL中提供了4个用于访问作用域范围的隐含对象,即pageScope.requestScope.sessionScope和applicationScope.应用这4个隐含对象指定所要查找的标识符的作用 ...

  5. IT兄弟连 JavaWeb教程 EL表达式获取对象的属性以及数组的元素

    使用${对象名.属性名} EL表达式语言可以使用点号运算符"."来访问对象的属性,例如表达式${customer.name}表示customer对象的name属性. 使用${对象名 ...

  6. EL的隐含对象(一)【页面上下文对象】

    页面上下文对象为pageContext,用于访问JSP内置对象(例如:request.response.out.session.exception.page等)和ServletContext.在获取到 ...

  7. js 遍历EL表达式 list对象

    无法直接通过"${topicList}"获取对象,需要通过<c:forEach>获取list里的对象: var topicListArry = new Array(); ...

  8. EL表达式学习笔记

     转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6684424.html  一:EL表达式的用途 1.获取数据:(某个web域 中的对象,访问javabean的 ...

  9. EL表达式的语法介绍及九大隐含对象

    一. 简介 > JSP表达式 <%= %> 用于向页面中输出一个对象. > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段. > 使用EL表达式来代 ...

随机推荐

  1. 前端优化分析 之 javascript引用位置优化

    在很多优化法则中都提到,尽量将javascript放到页面底部,这是为什么呢 我通过firebug进行了下简单的分析 看下图  本页面首尾都存在javascript代码 我们分析得出 1.整个页面文档 ...

  2. HDU 5590 ZYB's Biology 水题

    ZYB's Biology Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid ...

  3. UVA 12906 Maximum Score 排列组合

    Maximum Score Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/vie ...

  4. VMWare虚拟机网络的三种工作模式

    VMWare提供了三种工作模式: 1.bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器.在桥接模式下,需要手工为虚拟系 ...

  5. android设置动态壁纸 (Wallpaper) 介绍

    当进入改壁纸的设置页面 但是还没有设置时 09-21 07:55:05.575: INFO/System.out(1337): service onCreate09-21 07:55:05.614: ...

  6. Swift 本地推送通知UILocalNotification

    Notification是智能手机应用开发中常用的信息传递机制,它不用消耗更多资源去不停的检查信息状态,可以非常好的节省资源. 在iOS中分为两种通知:本地.远程.本地的UILocalNotifica ...

  7. Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)

    这节我们来学习Cocos2d-x的最后一节.怎样处理重力感应事件.移植到Android后加入再按一次返回键退出游戏等.我这里用的Android.IOS不会也没设备呃 效果图不好弄,由于是要移植到真机上 ...

  8. Xcode和IOS模拟器

    Xcode和IOS模拟器 目录 概述 Xcode常用操作 学会用Instrument IOS模拟器 概述 Xcode常用操作 整体缩进或者缩退 command+“[” .command+“]” 在同一 ...

  9. java中无符号类型的处理

    在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换. 方案一:如果在Java中进行流(Stream)数据处理,可以用DataInputStream类对Stre ...

  10. LeetCode27 Remove Element

    题目: Given an array and a value, remove all instances of that value in place and return the new lengt ...