学科分类
目录
Java Web

pageContext对象

为了获取JSP页面的隐式对象,可以使用EL表达式中的pageContext隐式对象。pageContext隐式对象的示例代码如下:

${pageContext.response.characterEncoding}

在上述示例中,pageContext对象用于获取response对象中的characterEncoding属性。接下来,通过一个案例来演示pageContext隐式对象的具体用法,如例1所示。

例1 pageContext.jsp

 1  <%@ page language="java" contentType="text/html; charset=utf-8"

 2    pageEncoding="utf-8"%>

 3  <html>

 4  <head></head>

 5  <body>

 6    请求URI为:${pageContext.request.requestURI} <br>

 7    Content-Type响应头:${pageContext.response.contentType} <br> 

 8    服务器信息为:${pageContext.servletContext.serverInfo} <br> 

 9    Servlet注册名为:${pageContext.servletConfig.servletName} <br>

 10 </body>

 11 </html>

​ 启动Tomcat服务器,在地址栏中输入http://localhost:8080/chapter07/pageContext.jsp访问pageContext.jsp页面,此时,浏览器窗口中显示的结果如图1所示。

图1 pageContext.jsp

从图1可以看出,使用EL表达式中的pageContext对象成功的获取到了request、response、servletContext和servletConfig对象中的属性。需要注意的是,不要将EL表达式中的隐式对象与JSP中的隐式对象混淆,只有pageContext对象是它们所共有的,其它隐式对象则毫不相关。

脚下留心:

如果某个对象存储的属性名与EL隐式对象的名称相同,那么,通过EL表达式获取对象的属性是无法实现的。接下来通过一个案例来验证这种情况,首先在chapter07工程中的WebContent根目录中编写一个implicit.jsp文件,在该文件的session域对象中存储一个名的pageContext属性,如例2所示。

例2 implicit.jsp

 1  <%@ page language="java" contentType="text/html; charset=utf-8"

 2    pageEncoding="utf-8"%>

 3  <html>

 4  <head></head>

 5  <body>

 6    <% session.setAttribute("pageContext", "itcast");  %>

 7    输出表达式\${pageContext}的值:<br> 

 8    ${pageContext}

 9  </body>

 10 </html>

打开IE浏览器,在地址栏中输入http://localhost:8080/chapter07/implicit.jsp访问implicit.jsp页面,此时,浏览器窗口中显示的结果如图2所示。

图2 implicit.jsp

从图2可以看出,浏览器窗口中输出表达式${pageContext}的值并不是itcast,而是一个对象,这个对象就是EL中的pageContext隐式对象。因此,可以说明如果域对象中定义的属性名称与EL隐式对象相同时,使用EL表达式不能获取域对象中的属性,只能获取到一个隐式对象。

点击此处
隐藏目录