我们已经学完了jsp内置对象的最主要的四种对象----page、request、response、session和application,在内置对象中有一个pageContext也是很重要的,因为它在某些程度上是全能的,因为它的一些方法能够代替四种内置对象的方法。
pageContext对象简介
pageContext对象是javax.servlet.jsp.PageContext类的实例,主要表示的是一个jsp页面的上下文,此类中除了之前讲解过的属性操作之外,还定义了以下的一些方法,正是这些方法才能够让pageContext成为全能的对象。
pageContext主要的功能是在jsp文件中的支持,一定要记住pageContext靠着以上的方法,可以说功能强大,几乎可以操作各种内置对象。
pageContext是一个功能强大的内置的对象,所以以后在讲解jsp高端编程的时候,标签库编程基本上就要用到pageContext对象完成了。
说到它功能强大,我们来一起看一下它到底为什么功能强大? 为什么能够操作几乎所有的内置对象。
用pageContext完成一次跳转的功能。要求从pageContext_01.jsp跳转到pageContext_02.jsp上。
- pageContext_01.jsp
- <%@ page language="java" contentType="text/html" pageEncoding="gbk" %>
- <html>
- <head>
- <title>web开发</title>
- </head>
- <body>
- </body>
- </html>
既然是跳转,则肯定是可以传递参数的,那么采用地址重写的方式完成的参数传递。
- pageContext_02.jsp
- <%@ page language="java" contentType="text/html" pageEncoding="gbk" %>
- <html>
- <head>
- <title>web开发</title>
- </head>
- <body>
- <%
- //直接从pageContext对象中取得了request
- String info=pageContext.getRequest().getParameter("info");
- %>
- <h3>info=<%=info%></h3>
- <h3>realpath=<%=pageContext.getServletContext().getRealPath("/")%></h3>
- </body>
- </html>
运行一下,结果如下:pageContext.getRequest().getParameter("info"); 这个方法正是取代了request。getParameter()这个方法。相似的还可以取得各种各样的内置对象的方法,这就是为什么说它是全能的了。
基本上pageContext可以是全能的,但是看一下API可以知道它返回来的是ServletRequest,所有它的功能并不能完全的代替request等等。
注意:
jsp内置对象从【01】~【07】,我们已经讲完了,个人感觉还算详细吧,这里面的代码一定要自己动手运行一遍,自己看和自己运行那是不同的概念。 内置对象是jsp核心的基础,所以一定要多练。
下一个系列我们要一起学习javaBean了,可以说没有javaBean的jsp就相当于你没有学过jsp