java.lang.Object对应this关键字。JSP网页本身,page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:
Object page = this;
在JSP页面中,很少使用page对象。
pageContext对象是JSP中很重要的一个内置对象,不过在一般的JSP程序中,很少用到它,所以知道request对象、response对象的人比较多,知道pageContext对象的人就比较少了。它是javax.servlet.jsp.PageContext的实例,该对象代表该JSP页面上下文,使用该对象可以访问页面中的共享数据。
实际上,pageContext对象提供了对JSP页面所有的对象及命名空间的访问,正如前面所介绍的一样,使用pageContext对象可以访问application对象、exception对象,还有session对象等。pageContext对象的方法可以访问除本身以外的8个JSP内部对象,还可以直接访问绑定在application对象、page对象、request对象、session对象上的Java对象。
pageContext对象相当于JSP程序中所有对象功能的集成者。不过,这里存在着一个问题,既然可以直接访问JSP内部对象,为什么还要多此一举,通过pageContext对象来访问它们呢?这也正是pageContext对象应用较少的原因。话虽这样说,pageContext对象总是JSP中9个内置对象不可或缺的一部分,读者还是需要掌握它的用法的。
pageContext对象常用的方法有:
// 获取ServletConfig对象 ServletConfig getServletConfig(); // 获取ServletContext对象 ServletContext getServletContext(); //使用pageContext 设置属性,该属性默认在page 范围内 pageContext.setAttribute ("page", "hello") ; //使用pageContext 将属性设置在application 范围中 pageContext.setAttribute("app2″, "hello" , pageContext.APPLICATION_SCOPE); //使用pageContext将属性设置在request 范围中 pageContext.setAttribute("request2″, "hello" , pageContext.REQUEST_SCOPE); //使用pageContext将属性设置在session范围中 pageContext.setAttribute("session2″, "hello", pageContext.SESSION_SCOPE);