pageContext对象代表页面上下文,主要用于访问JSP页面之间的共享数据.
使用pageContext可以访问page,request,session,application范围内的变量.
pageContext是pageContext类的实例,它提供两个方法来访问page,request,session,application范围内的变量.
- getAttribute(String name) : 取得page范围内的name属性.
- getAttributes(String name,int scope) :取得指定范围内的name属性,其中scope可以是如下4个值.
- PageContext.PAGE_SCOPE:对应于page范围.
- PageContext.REQUEST_SCOPE:对应r于equest范围
- PageContext.SESSION_SCOPE:对应于session范围
- PageContext.APPLICATION_SCOPE:对应于application范围
与getAttribute()方法对应,PageContest也提供了对应的setAttribute()方法,用于将指定变量放入page,request,session,application范围内.
pageContext还可以用于获取其他内置对象,pageContext对象包含如下方法.
- ServletRequest getRequest();获取request对象
- ServletResponse getResponse();获取response对象
- ServletConfig getServletConfig();获取config对象
- ServletContext getServletContext();获取application对象
- HttpSession getSession();获取session对象
一旦在JSP,servlet编程中获取了pageContext对象,就可以通过它提供的方法来获取其他内置对象.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ageContext</title>
</head>
<body>
<%
/* 使用pageContext设置属性,默认在page内 */
pageContext.setAttribute("page", "hello");
/* request */
request.setAttribute("request", "hello");
pageContext.setAttribute("request2", "hello", pageContext.REQUEST_SCOPE);
/* session */
session.setAttribute("session", "hello");
pageContext.setAttribute("session2", "hello", pageContext.SESSION_SCOPE);
/* application */
application.setAttribute("application", "hello");
pageContext.setAttribute("application2", "hello", pageContext.APPLICATION_SCOPE);
out.println("page" + pageContext.getAttributesScope("page"));
out.println("request" + pageContext.getAttributesScope("request"));
out.println("request2" + pageContext.getAttributesScope("request2"));
out.println("session" + pageContext.getAttributesScope("session"));
out.println("session2" + pageContext.getAttributesScope("session2"));
out.println("application" + pageContext.getAttributesScope("application"));
out.println("application2" + pageContext.getAttributesScope("application2"));
%>
</body>
</html>