JSP中page和pageContext的区别

pageContext对象是JSP中很重要的一个内置对象,不过在一般的JSP程序中,很少用到它,所以知道request对象、response对象的人比较多,知道pageContext对象的人就比较少了。它是javax.servlet.jsp.PageContext的实例,该对象代表该JSP页面上下文,使用该对象可以访问页面中的共享数据。

page

java.lang.Object对应this关键字。JSP网页本身,page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:

Object page = this;

在JSP页面中,很少使用page对象。

pageContext

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);
真理惟一可靠的标准就是永远自相符合。 —— 欧文
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号