EL隐式对象
EL隐式对象
在学习JSP技术时,提到过隐式 对象的应用。在EL技术中,同样 提供了隐式对象,EL中的隐式对象 共有 11个,
pageContext可以获取 其它10个隐式对象,
pageScope、
requestScope
sessionScope
applicationScope适用于获取指定域的隐式对象
param和param Values是用于 获取 请求参数的隐式对象
header和headerValues是用于获取HTTP请求消息头的隐式对象
cookie是用于获取Cookie信息的隐式对象
initParam是用于获取 Web应用初始化信息的隐式对象
pageContext
为了获取JSP页面的隐式对象,可以使用EL表达式中的pageContext隐式对象,pageContext隐式对象的实例代码如下:
${pageContext.response.characterEncoding}
请求消息为:
${pageContext.request.requestURI}
服务器信息为:
${pageContext.servletContext.servletInfo}
使用EL表达式中的pageContext对象成功 地获取到了 request、response、servletContext和ServletConfig对象中的属性。需要注意的是,不要将EL表达式中的隐式对象与JSP中的隐式对象混淆,只有pageContext对象是它们所共有的,其它隐式对象则毫不相关。
Web域相关对象
在 Web 开发中,PageContext、HttpServletRequest、HttpSession和ServletContext这4个对象之所以可以存储数据,是因为它们内部都定义了一个Map集合,这些Map集合是有一定作用范围的。例如,HttpRequest对象存储的数据只在当前请求中可以获取带。习惯性地,我们把这些,Map集合称为域,这些Map集合所在的对象称为域对象。在EL表达式中,为了获取指定域中的数据,提供了 pageScope、requestScope、SessionScope和applicationScope4个隐式对象“
需要注意的是,EL表达式只能在这4个作用域中获取数据。”
param和paramValues对象
在JSP页面中,经常需要 获取客户端传递的请求参数,为此,EL表达式t## 提供了param和paramValues两个隐式对象,这两个隐式对象专门用于获取客户端访问JSP页面时传递的请求参数(类似于 httprequest中的 getparam对象)
1、param对象
param对象用于获取请求参数的 某个值,它是 Map类型,与 request.getParameter()方法相同,在使用EL获取参数时,如果参数不存在,返回的是空字符串,而不是Null。param对象的语法格式比较简单,具体示例如下:
${param.num}
2、paramValues对象
如果一个请求参数有多个值,可以使用paramValues对象来获取请求参数的所有值,该对象 用于返回请求参数所有值 组成的数组,如果要 获取某个请求 参数的第一个值,可以使用 如下代码:
${paramValues.num[0]}
cookie对象
在JSP开发中,经常要获取 客户端的Cookie信息,为此,在EL表达式中,提供了Cookie隐式对象,该对象是一个代表所有 Cookie 信息的Map集合,Map集合中元素的键为各个Cookie对象的名称,值则为对应的Cookie对象。
initParam对象
在开发一个Web应用程序时,通常会在 **web.xml 文件中配置 一些初始化参数,**为了方便 获取这些参数,EL表达式提供了 一个 initParam隐式对象,该对象 可以获取 Web应用 程序中 全局初始化 参数,
(注意与 param参数的区别)
EL表达式 简化了JSP页面的书写,使不懂Java编程的开发人员也可以编写功能强大的JSP页面、