Web應用使用pageContext對象

        pageContext對象表明頁面上下文,用於訪問JSP之間的共享數據,使用pageContext能夠訪問page, request, session, application範圍的變量。
        使用pageContext對象的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範圍。
        使用pageContext對象的getAttributesScope(String name)函數能夠獲得name屬性所在的範圍對應的整數值,PAGE_SCOPE對應的值爲1,REQUEST_SCOPE對應的值爲2,SESSION_SCOPE對應的值爲3,APPLICATION_SCOPE對應的值爲4。
        在當前頁面調用getAttribute(String name, int scope)能獲得當前page範圍內的變量,本次request範圍的變量,本次session範圍的變量,application範圍的範圍,不能獲得其它page範圍的變量和其它request範圍的變量。
        以下是頁面pageContext.jsp頁面的代碼,設置了以下7個變量:
        page_val: 當前page範圍的變量,其值爲page_val;
        request_val1: 本次request範圍的變量,其值爲request_val1;
        request_val2: 本次request範圍的變量,其值爲request_val2;
        session_val1: 本次session範圍的變量,其值爲session_val1;
        session_val2: 本次session範圍的變量,其值爲session_val2;
        app_val1: 本application範圍的變量,其值爲app_val1;
        app_val2: 本application範圍的變量,其值爲app_val2;
        而後在該頁面中調用getAttributesScope(String name)函數分別獲取這7個變量的範圍,再調用getAttribute(String name, int scope)函數分別獲取這7個變量的值。頁面代碼以下:       html

<%@ 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>Insert title here</title>
</head>
<body>
	<%
		pageContext.setAttribute("page_val", "page_val");

		pageContext.setAttribute("request_val1", "request_val1", pageContext.REQUEST_SCOPE);
		request.setAttribute("request_val2", "request_val2");	
		
		pageContext.setAttribute("session_val1", "session_val1", pageContext.SESSION_SCOPE);
		session.setAttribute("session_val2", "session_val2");
		
		pageContext.setAttribute("app_val1", "app_val1", pageContext.APPLICATION_SCOPE);
		application.setAttribute("app_val2", "app_val2");
		
		out.println("變量page_val所在範圍:" + pageContext.getAttributesScope("page_val") + "<br />");
		
		out.println("變量request_val1所在範圍:" + pageContext.getAttributesScope("request_val1") + "<br />");
		out.println("變量request_val2所在範圍:" + pageContext.getAttributesScope("request_val2") + "<br />");
		
		out.println("變量session_val1所在範圍:" + pageContext.getAttributesScope("session_val1") + "<br />");
		out.println("變量session_val2所在範圍:" + pageContext.getAttributesScope("session_val2") + "<br />");
		
		out.println("變量app_val1所在範圍:" + pageContext.getAttributesScope("app_val1") + "<br />");
		out.println("變量app_val2所在範圍:" + pageContext.getAttributesScope("app_val2") + "<br />");
		
		out.println("<br />");
		
		out.println("page_val:" + pageContext.getAttribute("page_val") + "<br />");

		out.println("request_val1:" + pageContext.getAttribute("request_val1", pageContext.REQUEST_SCOPE) + "<br />");
		out.println("request_val2:" + pageContext.getAttribute("request_val2", pageContext.REQUEST_SCOPE) + "<br />");

		out.println("session_val1:" + pageContext.getAttribute("session_val1", pageContext.SESSION_SCOPE) + "<br />");
		out.println("session_val2:" + pageContext.getAttribute("session_val2", pageContext.SESSION_SCOPE) + "<br />");
		
		out.println("app_val1:" + pageContext.getAttribute("app_val1", pageContext.APPLICATION_SCOPE) + "<br />");
		out.println("app_val2:" + pageContext.getAttribute("app_val2", pageContext.APPLICATION_SCOPE) + "<br />");
	%>
</body>
</html>

        在瀏覽器中運行結果以下:
 java

 

 

 

 

 

 

 


      
        1即表示PAGE_SCOPE,2即表示REQUEST_SCOPE,3即表明SESSION_SCOPE,4即表示APPLICATION_SCOPE。
        在該頁面中能夠訪問到當前頁面中設置的page範圍的變量,本次request範圍的變量,session範圍的變量,application範圍的變量。若是在一個與pageContext.jsp無關的獨立的頁面中,就只能訪問session範圍的變量,application範圍的變量,不能訪問pageContext.jsp頁面中設置的page範圍的變量和請求pageContext.jsp頁面的那次request範圍的變量。瀏覽器

相關文章
相關標籤/搜索