Posted on 2017-03-27 09:32
香草 閱讀(351)
評論(0) 編輯 收藏
1、page屬性范圍(pageContext)
a、在一個頁面設(shè)置的屬性,跳轉(zhuǎn)到其他頁面就無法訪問了(包括重定向和)。
示例:pageScopeDemo01.jsp
<%@ page import="java.util.*" language="java" contentType="text/html; c harset=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>page屬性范圍(pageContext)</title>
</head>
<body>
<%
//此時設(shè)置的屬性只能夠在本頁中取得
pageContext.setAttribute("name","英雄聯(lián)盟");//設(shè)置屬性
pageContext.setAttribute("date",new Date()); //設(shè)置屬性
//注意:這里設(shè)置的兩個屬性的名字分別為name和date,這兩個是字符串類型的數(shù)據(jù),但對應(yīng)的屬性值英雄聯(lián)盟和new Date這個兩個值卻不是字符串類型,而是兩個Object類型的數(shù)據(jù) 。
%>
<%
//取得設(shè)置的屬性
String refName = (String)pageContext.getAttribute("name");
//由于取得的值為Object類型,因此必須使用String強(qiáng)制向下轉(zhuǎn)型,轉(zhuǎn)換成String類型
Date refDate = (Date)pageContext.getAttribute("date");
%>
<h1>姓名:<%=refName%></h1>
<h1>?日期:<%=refDate%></h1>
</body>
</html>
b、這里說一下,如果需要檢驗的,使?用jsp:forward標(biāo)簽進(jìn)行服務(wù)器?端跳轉(zhuǎn)。
示例:<jsp:forward page="地址.jsp" />
c、這里的跳轉(zhuǎn)頁面,包括重定向(客戶端的URL發(fā)生改變)和轉(zhuǎn)發(fā)(服務(wù)器端的URL不發(fā)生改變,進(jìn)行服務(wù)器?端跳轉(zhuǎn))。
2、request屬性范圍
a、request屬性范圍表示在一次服務(wù)器跳轉(zhuǎn)中有效,只要是服務(wù)器跳轉(zhuǎn)(轉(zhuǎn)發(fā)或派發(fā)),則設(shè)置的 request屬性可以一直傳遞下去。
3、session屬性范圍
a、session設(shè)置的屬性不管如何跳轉(zhuǎn),都可以取得的。當(dāng)然,session只針對一個用戶
b、在第一個頁面上設(shè)置的屬性,跳轉(zhuǎn)(服務(wù)器跳轉(zhuǎn)/客戶端跳轉(zhuǎn))到其他頁面之后,其他的頁面依然可以取得第一個頁面上設(shè)置的屬性。
c、這里不管是客戶端跳轉(zhuǎn)還是服務(wù)器端跳轉(zhuǎn)都可以訪問第一個頁面設(shè)置的session屬性,條件是只限制于當(dāng)前用戶。如果,此時新開了一個瀏覽器,則無法訪問session的屬性值。
4、application屬性范圍
a、application屬性范圍是在服務(wù)器上設(shè)置的一個屬性,所以一旦設(shè)置之后任何用戶 都可以瀏覽到此屬性。
b、如果把Tomcat服務(wù)器先關(guān)閉后再重新啟動,打開瀏覽器窗口運(yùn)行,直接去獲取 application屬性設(shè)置的值,是無法獲取的。