`
yinchunjian
  • 浏览: 278952 次
  • 性别: 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对象

    普通java类中获取pageContext对象

    JavaWeb pageContext对象原理解析

    主要介绍了JavaWeb pageContext对象原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

    servlet中使用jspsmart上传

    在servlet中获取pageContext对象 使用jspsmart组件

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

    jsp九大内置对象:pageContext,request,response,out,session,application、exception、config、实例代码讲解,有注释可运行

    JSP内置对象归纳与总结

    JSP内置对象的归纳与总结,内置对象概述 out对象 request对象 response对象 session对象 application对象 pageContext对象 exception对象

    JSP内建对象方法大全

    JSP内建对象: page对象 config对象 out对象 request对象 response对象 seesion对象 application对象 pageContext对象 exception对象 的全部方法和具体的解释!

    详细了解JSP中九个隐含对象

    详细了解JSP中九个隐含对象,page 对象,config 对象,request 对象,response 对象,out 对象,session 对象,application对象,pageContext对象,exception对象

    JSP的内置对象详细讲解

    JSP的内置对象详细讲解,其中包括理解内置对象的含义及熟练掌握out对象及其方法的使用 熟练掌握request对象及其方法的使用 熟练掌握response对象及其方法的使用 ...掌握pageContext对象及其方法的使用

    第五章 JSP内置对象(新)1

    声明中不能使用。概述request对象response对象session对象application对象pageContext对象config对象exceptio

    jsp九大内置对象

     pageContext变量存储与当前页面相关联的PageContext对象的值。  补:  如果方法需要访问多个与页面相关的对象,  传递pageContext要比传递request,response,out等的独立引用更容易。(虽然两种方式都能...

    jsp有哪些内置对象?作用分别是什么?分别有什么方法?

     pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。  session表示一个请求的javax.servlet....

    JSP内置对象

    对象是典型的具有方法、属性和集合的事物 对象的属性反映了对象的状态,可以读取或设置。对象的集合是由很多不同的与...这8个对象分别是request、response、pageContext、session、application、out、config和page。

    jsp内置对象

    pageContext 页面上下文对象 application 应用程序对象 exception 异常对象 说明:有几种对象看起来和ASP的内置对象差不多,功能也类似,这是因为这些内置对象的构建基础是标准化的HTTP协议。从本质上讲,JSP的这些...

    jsp内置对象的用法

    pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫...

    JSP 内置对象:作用域通信对象.pptx

    作用域通信对象 pageContext request session application

    jsp request 对象详解

    jsp request 9大对象详解config pageContext application对象

    java web 期末复习题库(便于打印)

    当访问一个 Servlet 时,以下 Servlet 中的哪个方法先被执行? (A) destroy() (B) doGet() ... pageContext 对象的 findAttribute() 方法的作用是 A.用来设置默认页面的范围或指定范围之中的已命名对象 B.用来删除默

    jsp的内置对象的详细讲解

    了解内置对象的分类及组成 掌握输入/输出对象:request、response 和 out 掌握作用域通信对象:session、application和pageContext 掌握 Servlet 相关对象:page 和 config 掌握错误对象:exception

Global site tag (gtag.js) - Google Analytics