`
yinchunjian
  • 浏览: 283068 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

pageContext对象的使用

    博客分类:
  • java
阅读更多

pageContext对象

pageContext对象是JSP中很重要的一个内置对象,不过在一般的JSP程序中,很少用到它,所以知道request对象、response对象的人比较多,知道pageContext对象的人就比较少了。它是javax.servlet.jsp.PageContext类的实例对象,可以使用PageContext类的方法。实际上,pageContext对象提供了对JSP页面所有的对象及命名空间的访问,正如前面所介绍的一样,使用pageContext对象可以访问application对象、exception对象,还有session对象等。pageContext对象的方法可以访问除本身以外的8个JSP内部对象,还可以直接访问绑定在application对象、page对象、request对象、session对象上的Java对象。pageContext对象相当于JSP程序中所有对象功能的集成者。不过,这里存在着一个问题,既然可以直接访问JSP内部对象,为什么还要多此一举,通过pageContext对象来访问它们呢?这也正是pageContext对象应用较少的原因。话虽这样说,pageContext对象总是JSP中9个内置对象不可或缺的一部分,读者还是需要掌握它的用法的。

在JSP程序中,我们可以使用pageContext来代表pageContext对象:

<%

    pageContext.Method();

%>

pageContext对象的主要用法如下。

1)getOut()

该方法返回一个JspWriter类的实例对象,也就是JSP内置对象——out对象,可以往客户端写入输入流。它的使用方法如下:

<%

       JspWriter myout=pageContext.getOut();

       myout.println(“myout write: hello world”+”<br>”);

       out.println(“out write: hello world”);

%>

2)getSession()
该方法的返回值是一个HttpSession接口的实例对象,即JSP内置对象——session对象,可以保存不同用户的信息。它的使用方法如下:

<%

    String username1=”george”;

    String password1=”george”;

    HttpSession mySession= pageContext. getSession();

    mySession.putValue(“username”,username1);

    mySession.putValue(“password”, password1);

%>

3)getPage()
该方法的返回值是一个java.lang.Object对象,也就是JSP内置对象——page对象。它的使用方法如下:

<%

    Object mypage=pageContext.getPage();

    out.println(mypage.toString());

%>

4)getResponse()
该方法的返回对象是javax.servlet.ServletResponse,也就是JSP内置对象——response对象,主要用于控制HTTP连接。它的使用方法如下:

<%

    ServletResponse myresponse=pageContext.getResponse();
    out.println(myresponse.getCharacterEncoding());

%>

5)getRequest()
该方法的返回对象是javax.servlet.ServletRequest,也就是JSP内置对象——request对象,主要用于获取客户端的信息。它的使用方法如下:

<%

    ServletRequest myrequest=pageContext.getRequest();

    out.println(myrequest.getRemoteHost());

    String username2=”robin”;

    String password2=”robin”;

    myrequest.setAttribute(“username”,username2);

    myrequest.setAttribute(“password”, password2);

%>

6)getException()

该方法的返回值是当前页的exception对象。它的使用方法如下:

<%

   Exception myexception=pageContext. getException();

    out.println(myexception.getMessage());

%>

上面的代码片段最好在错误处理程序中使用,也就是page编译指令的isErrorPage属性为true的页面中。

7)getServletConfig()

该方法可以返回当前的config对象,用于获取JSP/Servlet程序的初始参数。它的使用方法如下:

<%

    ServletConfig myconfig=pageContext.getServletConfig();

%>

8)getServletContext()

该方法的返回值是一个ServletConfig接口的实例对象,也就是JSP内置对象——application对象的副本。它的使用方法如下:

<%

    ServletContext myapplication=pageContext.getServletContext();
    out.println(myapplication.getServerInfo());

    String username3=”java”;

    String password3=”java”;

    myapplication.setAttribute(“username”,username3);

    myapplication.setAttribute(“password”, password3);

%>

9)setAttribute(String name, Object o, int scope)

pageContext对象的setAttribute()方法可以将参数或者Java对象绑定到application对象、session对象、request对象或者page对象上,这里的scope参数可以取以下的值。

l        pageContext.PAGE_SCOPE

l        pageContext.REQUEST_SCOPE

l        pageContext.SESSION_SCOPE

l        pageContext.APPLICATION_SCOPE

当scope参数的值为pageContext.SESSION_SCOPE时,调用PageContext对象的setAttribute()方法和调用session对象的putValue()方法是等效的,都是将某个参数或者Java对象和当前的session绑定起来。如果scope参数的值为如果scope参数的值为pageContext.APPLICATION_SCOPE,那么调用PageContext对象的setAttribute()方法和调用application对象的setAttribute()方法是等效的。如果scope参数是其他的值,原理也是一样的,我们就不多说了。它的使用方法如下:

<%

    pageContext.setAttribute(“username”,”george”,

        pageContext.APPLICATION_SCOPE);

    pageContext.setAttribute(“username”,”robin”,pageContext.

        SESSION_SCOPE);

%>

10)getAttribute(String name, int scope)
pageContext对象的getAttribute()方法也可以直接获取和application对象、page对象、session对象、request对象相互绑定的参数或者Java对象的值。这个方法的scope参数的意义和上面讲的一样。如果scope参数的值是pageContext.REQUEST_SCOPE,那么getAtttribute()方法就在当前的request对象内部查找有没有绑定一个名为name的Java对象,如果有,就返回这个对象,如果没有,返回null值。如果scope参数的值是pageContext.APPLICATION_SCOPE,那么getAtttribute()方法的作用范围将是application对象。它的使用方法如下:

<%

    pageContext.getAttribute(“username”, pageContext.APPLICATION_SCOPE);

    pageContext.getAttribute(“username”, pageContext.SESSION_SCOPE);

%>

11)removeAttribute(String name, int scope)

顾名思义,pageContext对象的removeAttribute()方法可以直接解除application对象、session对象、request对象、page对象和某个特定的参数或者Java对象的绑定关系。这个方法的scope参数指定了作用的范围,如果scope参数的值为pageContext.SESSION_SCOPE,那么removeAttribute()方法将会使某个参数或者Java对象和当前的session对象解除绑定关系,如果scope参数是其他值,原理也一样的。它的使用方法如下:

<%

    pageContext.removeAttribute(“username”,

        pageContext.APPLICATION_SCOPE);

    pageContext.removeAttribute(“username”, pageContext.SESSION_SCOPE);

%>

12)findAttribute(String name)
pageContext对象的findAttribute()方法将在application对象、session对象、request对象、page对象内部查找是否有某个参数或者Java对象与这些对象绑定了,搜索顺序是先是范围最小的page对象,其次是request对象、session对象,最后是application对象,这个方法的返回值是第一个符合要求的Java对象的值。它的使用方法如下:

<%

    String username=pageContext.findAttribute(“username”);

%>

13)getAttributeScope(String name)

使用这个方法可以知道特定的参数或者Java对象和哪一个JSP对象绑定在一起。该方法的返回值是整型常数,可能是下面4个常数之一:

l        pageContext.PAGE_SCOPE

l        pageContext.REQUEST_SCOPE

l        pageContext.SESSION_SCOPE

l        pageContext.APPLICATION_SCOPE

如果返回值是pageContext.SESSION_SCOPE,表明这个Java对象和session对象绑定在一起。如果是其他返回值,读者可以依次类推。它的使用方法如下:

<%

    Int scope=pageContext.getAttributeScope(“username”);

%>

14)getAttributeNameInScope(int scope)

该方法可以获取特定JSP对象内部绑定了哪些参数或者Java对象,scope参数指定了该方法的作用范围。这个方法的返回值是一个枚举对象(Enumeration)。它的用法示例如下:

<%

    Enumeration enum=null;

    enum=pageContext.getAttributeNamesInScope(pageContext.SESSION_SCOPE);

    while(enum.hasMoreElements())

    {

        out.println(enum.nextElement()+”<br>”);

    }

%>

上面的JSP代码段将返回session对象中所绑定的参数或者Java对象的名字。

15)release()
该方法将会释放pageContext对象所占的资源。

16)forward(String url)
该方法可以实现网页的重定向功能,类似于response.sendRedirect()方法。

17)include(String relativeUrlPath)
该方法可以让当前文件包含进一个外部文件,类似于JSP的include编译指令和<jsp:include>操作指令。

由上面对pageContext对象的介绍,读者应该不难看出,pageContext对象有两大主要功能,分别是获取各JSP内部对象,以及直接操作与某些JSP对象绑定在一起的参数或者Java对象。

 

 

分享到:
评论

相关推荐

    pageContext对象

    NULL 博文链接:https://chaoyi.iteye.com/blog/2070817

    普通java类中获取pageContext对象

    3. **获取`PageContext`**:使用`ServletContext`的`getPageContext(HttpServletRequest request)`方法尝试获取`PageContext`对象。但需要注意的是,这个方法在Servlet API中并不存在,因此不能直接调用。正确的做法...

    JavaWeb pageContext对象原理解析

    JavaWeb pageContext 对象原理解析 PageContext 对象是 JavaWeb 中一个非常重要的对象,它是 JSP 九大内置对象之一,负责管理 JSP 页面...但是,我们需要注意 PageContext 对象的生命周期和作用域,以便更好地使用它。

    超全面javaweb教程28天第11,12天 5 pageContext对象

    超全面javaweb教程28天第11,12天_5_pageContext对象

    jsp九大内置对象实例代码学习,可运行,有注释

    1. **pageContext对象**: - `PageContext`对象提供对整个JSP页面的访问,可以获取其他所有内置对象的引用,也可以用来存储页面级的数据。 - 示例代码: ```java ...

    jsp内置对象的使用

    1. **pageContext对象**:PageContext对象提供了一个全局的访问上下文,可以用来获取其他JSP对象,如request、response、session、application等。它还允许在不同作用域之间存储和检索数据。 2. **request对象**:...

    JSP内置对象使用说明.doc

    8.PageContext对象类:PageContext PageContext对象提供了一种方式来访问JSP页面的所有范围的变量,并且提供了对JSP页面所有作用域的访问,包括page, request, session, 和 application。获取其他范围的变量: ```...

    jsp的九大隐式对象详解

    JSP 九大隐式对象是指在 JSP 编程中可以直接使用的九个内置对象,这九个对象分别是:request、response、session、application、out、pageContext、config、page、exception。下面对每个对象进行详细解释。 1. ...

    JSP内置对象归纳与总结

    JSP提供了九个内置对象,分别是out对象、request对象、response对象、session对象、application对象、pageContext对象、exception对象、config对象和page对象。这些内置对象是由容器实现和管理的,可以直接在JSP页面...

    JSP应用开发-JSP内置对象.pptx

    JSP内置对象有多种,包括request对象、response对象、session对象、application对象、out对象、config对象、pageContext对象、page对象等。 1. request对象 request对象是从客户端向服务器端发出请求,包括用户...

    Java Web程序设计入门课件-JSP隐式对象.pptx

    4.4.2 pageContext对象:作为JSP页面运行环境的代表,pageContext对象提供了一种途径来访问其他8个隐式对象。它是一个javax.servlet.jsp.PageContext类的实例,包含一系列方法,如getAttribute()和setAttribute(),...

    JSP内置对象实验报告.doc

    实验代码中,我们使用pageContext对象获取了request对象和session对象,并使用它们来访问和操作JSP页面的信息。 通过本实验,我们了解了JSP内置对象的基本概念、常用方法和应用。这些对象提供了访问和操作JSP页面的...

    jsp九大内置对象讲解

    pageContext对象是JSP九大内置对象之一,用于提供对JSP页面的访问和控制。 JSP九大内置对象是JSP技术中非常重要的一部分,它们为开发者提供了一些预定义的对象,用于帮助快速地开发Web应用程序。在了解JSP九大内置...

    JSP的九个内置对象及四个作用域

    PageContext 对象是javax.servlet.jsp.PageContext类型,代表的是当前页面运行的一些属性,常用的方法有findAttribute、getAttribute、getAttributesScope和getAttributeNamesScope,一般情况下PageContext对象用到...

    pageContext-request-session-application的使用及区别

    ### pageContext-request-session-application的使用及区别 #### 一、概述 在Web开发中,`pageContext`, `request`, `session`, 和 `application` 是四个非常重要的内置对象,它们分别代表了不同作用域内的数据存储...

    jsp的九大内置对象详细讲解

    然而,在实际开发中,我们很少直接使用page对象,因为它的功能往往可以通过pageContext对象获取。 理解并熟练使用这九大内置对象是掌握JSP的关键。它们极大地简化了服务器端的编程工作,使得开发者能够更加专注于...

    jsp内置对象.doc

    pageContext对象的常用方法包括getRequest()、getResponse()、getSession()等。 七、config对象 config对象是JSP中的一个内置对象,提供了对Servlet配置的访问和操作能力。config对象可以获取Servlet配置的信息,...

    jsp内建对象简介和使用

    下面将详细介绍JSP中的九个主要内建对象:`request`、`response`、`out`、`session`、`pageContext`、`application`、`config`、`page`以及`exception`(虽然在题目中未提及,但在实际开发中同样重要),并通过实例...

    四个范围 pagecontext request session application

    PageContext对象提供了一个统一的接口,用于访问Web应用程序中的所有作用域。它允许开发者在JSP页面内部获取和共享数据。PageContext的作用域仅限于当前JSP页面,一旦页面处理完成,其中的数据就会丢失。...

Global site tag (gtag.js) - Google Analytics