javaWEB總結(13):域物件的屬性操作
阿新 • • 發佈:2019-02-09
前言
本文主要講解javaweb的四個域物件以及他們的作用範圍,後面會有小demo來具體測試。
四個域物件
(1)pageContext:屬性的作用範圍僅限於當前JSP頁面;
(2)request:屬性的作用範圍僅限於同一個 請求;
(3)session:屬性的作用範圍僅限於一次會話,遊覽器開啟直到關閉為一次會話(前提是在此期間會話不會失效)
(4)application:屬性的作用範圍限於當前WEB應用。
域物件共有的方法:
(1)Object getAttribute(String name):獲取指定屬性;
(2)Enumeration getAttributeNames():獲取所有屬性的名字組成的Enumeration 物件;
(3)removeAttribute(String name):移除指定屬性;
(4)void setAttribute(String name,Object o):設定屬性。
專案結構
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>javaWeb_13</display-name> <welcome-file-list> <welcome-file>first.jsp</welcome-file> </welcome-file-list> </web-app>
first.jsp
<%@ 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>當前頁獲取域物件裡面的屬性值</title> </head> <body> <h2>First Page</h2> <% pageContext.setAttribute("pageContextAttr", "pageContextValue"); request.setAttribute("requestAttr", "requestValue"); session.setAttribute("sessionAttr", "sessionValue"); application.setAttribute("applicationAttr", "applicationValue"); %> 01-pageContext:<%=pageContext.getAttribute("pageContextAttr") %> <br><br> 02-request:<%=request.getAttribute("requestAttr") %> <br><br> 03-session:<%=session.getAttribute("sessionAttr") %> <br><br> 04-application:<%=application.getAttribute("applicationAttr") %> <br><br> <a href="second.jsp">To Second Page</a> </body> </html>
second.jsp
<%@ 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>跨頁面獲取域物件裡面的屬性值</title>
</head>
<body>
<h2>Second Page</h2>
01-pageContext:<%=pageContext.getAttribute("pageContextAttr") %>
<br><br>
02-request:<%=request.getAttribute("requestAttr") %>
<br><br>
03-session:<%=session.getAttribute("sessionAttr") %>
<br><br>
04-application:<%=application.getAttribute("applicationAttr") %>
<br><br>
<a href="first.jsp">To First Page</a>
</body>
</html>
執行專案後,在當前頁面裡面可以取到所有域物件的值
跨頁面時,由於是不同的頁面,不同的請求,所以pageContext和request為空
關閉遊覽器,再次重新開啟,直接輸入第二個頁面的地址,session也為空,說明再次開啟遊覽器後不是同一次會話