1、pageContext对象代表上下文,该对象主要用于访问JSP之间的共享数据。使用pageContext可以访问page、request、session、application范围的对象。
2、pageContext是PageContext类的实例,它提供两个方法来访问page、request、session、application范围的变量。
①getAttribute(String name):取得page范围内的name属性
②getAttribute(String name,int scope) 取得指定范围内的name属性,其中scope可以是如下4个值
PageContext.PAGE_SCOPE:对应于page范围
PageContext.REQUEST_SCOPE:对应于request范围
PageContext.SESSION_SCOPE:对应于session范围
PageContext.APPLICATION_SCOPE:对应于application范围
3、与getAttribute()方法相对,PageContext也提供了2个对应的setAttribute()方法,用于将指定变量放入page、request、session、application范围内。
<%@ page contentType="text/html;charset=GBK" language="java" errorPage="errorPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>pageContext test</title>
</head>
<body>
<%out.println("pageContext test");%><br/>
pageContext test
<%
pageContext.setAttribute("page","hello,by page");
request.setAttribute("request1", "hello,by request1");
pageContext.setAttribute("request2","hello",pageContext.REQUEST_SCOPE);
session.setAttribute("session1","heloo by session1");
pageContext.setAttribute("session2","hello by session2",pageContext.SESSION_SCOPE);
application.setAttribute("app", "hello by application");
pageContext.setAttribute("app2","hello",pageContext.APPLICATION_SCOPE);
out.println("page变量所在范围:" + pageContext.getAttributesScope("page") + "<br/>");
out.println("request1变量所在范围:" + pageContext.getAttributesScope("request1") + "<br/>");
out.println("request2变量所在范围:" + pageContext.getAttributesScope("request2") + "<br/>");
out.println("session1变量所在范围:" + pageContext.getAttributesScope("session1") + "<br/>");
out.println("session2变量所在范围:" + pageContext.getAttributesScope("session2") + "<br/>");
out.println("app变量所在范围:" + pageContext.getAttributesScope("app") + "<br/>");
out.println("app2变量所在范围:" + pageContext.getAttributesScope("app2") + "<br/>");
%>
</body>
</html>
输出:
pageContext test
pageContext test page变量所在范围:1
request1变量所在范围:2
request2变量所在范围:2
session1变量所在范围:3
session2变量所在范围:3
app变量所在范围:4
app2变量所在范围:4
结果显示了使用pageContext获取各属性所在的范围,其中这些范围获取的都是整形变量,这些整形变量分别对应如下4个生存范围
①page生存范围
②request生存范围
③session生存范围
④application生存范围
4、pageContext还可以用于获取其他内置对象,pageContext对象包含方法如下:
ServletRequest getRequest();获取request对象
ServletResponse getResponse();获取response对象
ServletConfig getServletConfig();获取config对象
ServletContext getServletContext();获取application对象
HttpSession getSession();获得session对象