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对象