EL的隐含对象及使用

10 篇文章 0 订阅

1.页面上下文对象:页面上下文对象为pageContext,用于访问JSP内置对象(如request、out、session、page、exception,但不能用于获取application、config和pageContext对象)和servletContext。这些属性与对象的getXXX()方法相对应,在使用时,去掉方法中的get,并将首字母改写为小写即可。
(1)访问request对象(注:不能通过pageContext对象获取保存到request范围内的变量)获取JSP内置对象中的request对象:${pageContext.request}
例:访问getServerPort()方法:${pageContext.request.serverPort}
(2)访问response对象
获取JSP内置对象中的response对象:${pageContext.response}
例:通过getContextType()获取响应类型:${pageContext.response.contentType}
(3)访问out对象
获取JSP内置对象中的out对象:${pageContext.out}
例:通过getbufferSize()获取输出缓冲区大小:${pageContext.out.bufferSize}
(4)访问session对象
获取了JSP内置对象的session对象:${pageContext.session}
例:通过getmaxInactiveInterval()方法获取session的有效时间:${pageContext.session.maxInactiveInterval}
(5)访问exception对象
获取JSP内置对象中的exception对象${pageContext.exception}
例:通过getmessage()方法获取异常信息字符串:${pageContext.exception.message}
注:在使用该对象时,也需要在可能出现错误的页面中指定错误处理页,并在错误处理页面中指定page指令的isErrorPage属性值为true,然后再使用上面的EL输出异常信息。
(6)访问page对象
获取JSP内置对象中的page:${pageContext.page}
例:通过getclass()获取当前页面的类文件:${pageContext.page.class}
(8)访问servletContext对象
获取JSP内置对象中的servletContext对象:${pageContext.servletContext}
例:通过getcontextPath()方法获取当前页面的上下文路径:

${pageContext.servletContext.contextPath}

2.访问作用域范围的隐含对象
在EL中提供了四个用于访问作用于范围的隐含对象,即pageScope、requestScope、sessionScope、和application。应用这四个隐含对象指定所要查找的标识符的作用域后,系统将不再按照默认的(page,request,session及application)来查找相应的标识符。它们与JSP中的page、request、session、application内置对象类似。只不过这四个隐含对象只能取得指定范围内的属性值,而不能取得其他相关信息。
(1)pageScope隐含对象
pageScope隐含对象用于返回包含page(页面)范围内的属性值的集合,返回值为java.util.Map对象。
例如可以通过pageScope隐含对象读取page范围内的JavaBean的属性值。

${pageScope.user.name}   //获取、javaBean实例的name属性

(2)requestScope隐含对象
requestScope对象用于返回包含request(请求)范围的属性值的集合,返回值为java.util.Map对象
例:获取保存在request范围内的userName变量

<%
request.setAttribute("userName","mr");   //定义request范围内的变量userName
%>
${requestScope.userName}

(3)sessionScope隐含对象
sessionScope隐含对象用于返回包含session(会话)范围内的属性值的集合,返回值为java.util.Map对象
例:要获取保存在session范围内的manager变量,可以使用下面的代码:

<%
session.setAttribute("manager","mr");      //定义session范围内的变量manager
%>
${sessionScope.manager}

(4)applicationScope隐含对象
applicationScope隐含对象用于返回包含application(应用)范围内的属性值的集合,返回值为java.util.Map对象
例:要获取保存在application范围内的message变量,可以使用下面代码:

<%
application.setAttribute("message","欢迎光临!");       //定义application范围内的变量message
%>
${applicationScope.message}

3.访问环境信息的隐含对象
在EL中,提供了6个访问环境信息的隐含对象。
(1)param对象
param对象用于获取请求参数的值,应用在参数值只有一个的情况。在应用param对像时,返回的结果为字符串。(常用于表单元素的提交后获取值)
(2)paramValues对象
如果一个请求参数名对应多个值时,则需要使用paramValues对象获取请求参数的值。在应用paramValues对象时,返回的结果为数组。(例如相同name的复选框的值的获取)
(3)header和headerValues对象
header对象用于获取HTTP请求的一个具体的header的值,但是在有些情况下,可能存在同一个header拥有多个不同值的情况,这是就需要用headerValues对象
(4)initParam对象
initParam对象用于获取web应用初始化参数的值
(例如在web.xml文件中设置的初始化参数)
(5)cookie对象
虽然在EL中并没有提供向cookie中保存值的方法,但是它提供了访问有请求设置的cookie的方法,这可以通过cookie隐含对象实现。如果在cookie中已经设定一个名称为username的值,那么可以使用${cookie.username}来获取该cookie对象。但如果要获取cookie中的值,需要使用cookie对象的value属性。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值