现在的位置: 首页 > 综合 > 正文

PageContext抽象类

2013年10月03日 ⁄ 综合 ⁄ 共 1676字 ⁄ 字号 评论关闭

JSP API 提供了一个非常实用的类:javax.servlet.jsp.PageContext抽象类,它继承了javax.servlet.jsp.JspContext。Pagecontext类是JSP文件的得力助手,在JSP文件中使用PageContext类的场合主要包括:

①JSP文件中的Java程序片段。

②JSP文件中的自定义标签的处理类。

 PageContext 类中的方法可分为以下几种:

①用于向各种范围内存取属性的方法

②用于获得由Servlet容器提供的其他对象的引用的方法

③用于请求转发和包含的方法

1. 向各种范围内存取属性的方法

getAttribute(String name):
getAttribute(String name,int scope):
setAttribute(String name,Obejct value,int scope):
removeAttribute(String name,int scope):
findAttribute(String name):
int getAttributeScope(String name):

以上方法中的scope参数指定属性的范围,可选值为PageContext类的四个静态常量:

PageContext.PAGE_SCOPE:实际取值为1
PageContext.REQUEST_SCOPE:实际取值为2
PageContext.SESSION_SCOPE:实际取值为3
PageContext.APPLICATION_SCOPE:实际取值为4

PageContext对象由Servlet容器负责创建,JSP文件可以直接通过固定变量pageContext来引用隐含的PageContext对象。

以下代码向请求范围内存放了一个username属性:

<% pageContext.setAttribute("username","Tom",PageContext.REQUEST_SCOPE);%>

它与以下代码是等价的:

<% request.setAttribute("username","Tom");%>


2. 用于获得由Servlet容器提供的其他对象的引用的方法

PageContext类的以下方法用于获得由Servlet容器提供的ServletContext、HttpSession、ServletRequest和ServletResponse等对象。

getPage():返回与当前JSP对应的Servlet实例
getRequest():返回ServletRequest对象
getResponse():返回ServletResponse对象
getServletConfig():返回ServletConfig对象
getServletContext():返回ServletContext对象
getSession():返回HttpSession对象
getOut():返回一个用于输出响应正文的JspWriter对象

在JSP文件的Java程序片段中,可以直接通过application,request和response等固定变量来引用ServletContext、ServletRequest和ServletResponse等对象。而在自定义的JSP标签的处理类中,无法使用application、request和response等固定变量,此时就需要依靠PageContext类的相关方法来得到ServletContext、ServletRequest和ServletResponse等对象。

3. 用于请求转发和包含的方法

PageContext类的以下方法用于请求转发和包含:

forward(String url):转发
include(String url):包含

在JSP文件中可以用专门的JSP标记(如<jsp:forward>标记和<jsp:include>)来进行请求转发和包含操作,而在自定义的JSP标签的处理类中,无法使用JSP标记,此时就需要依靠PageContext类的相关方法来进行请求转发和包含操作。

【上篇】
【下篇】

抱歉!评论已关闭.