我们已经学完了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上。

 
  
  1. pageContext_01.jsp  
  2. <%@ page language="java" contentType="text/html" pageEncoding="gbk" %> 
  3. <html> 
  4. <head> 
  5. <title>web开发</title> 
  6. </head> 
  7. <body> 
  8. </body> 
  9. </html> 

既然是跳转,则肯定是可以传递参数的,那么采用地址重写的方式完成的参数传递。

 
  
  1. pageContext_02.jsp  
  2. <%@ page language="java" contentType="text/html" pageEncoding="gbk" %> 
  3. <html> 
  4. <head> 
  5. <title>web开发</title> 
  6. </head> 
  7. <body> 
  8. <%  
  9.      //直接从pageContext对象中取得了request  
  10.      String info=pageContext.getRequest().getParameter("info");  
  11. %> 
  12. <h3>info=<%=info%></h3> 
  13. <h3>realpath=<%=pageContext.getServletContext().getRealPath("/")%></h3> 
  14. </body> 
  15. </html> 

运行一下,结果如下:pageContext.getRequest().getParameter("info");  这个方法正是取代了request。getParameter()这个方法。相似的还可以取得各种各样的内置对象的方法,这就是为什么说它是全能的了。

基本上pageContext可以是全能的,但是看一下API可以知道它返回来的是ServletRequest,所有它的功能并不能完全的代替request等等。

注意:

jsp内置对象从【01】~【07】,我们已经讲完了,个人感觉还算详细吧,这里面的代码一定要自己动手运行一遍,自己看和自己运行那是不同的概念。     内置对象是jsp核心的基础,所以一定要多练。

下一个系列我们要一起学习javaBean了,可以说没有javaBean的jsp就相当于你没有学过jsp