主要掌握九個隱式對象:
request response out session application pageContext page config exception 隱式對象就是不需要我們new的對象,直接的我們就可以在頁面使用的對象,注意是在<%...%>裡面或者是<%=...%>裡面,
request對象:儲存了很多用戶端請求的資訊。如請求來源,Cookie和用戶端請求的相關資料等
request對象的方法:
傳回值 |
方法 |
描敘 |
object |
getAttribute(String name) |
返回指定屬性的屬性值 |
Enumeration |
getAttributeNames() |
返回所有可用屬性名稱的枚舉 |
String |
getCharacterEncoding() |
返回字元編碼方式 |
int |
getContentLength() |
返回請求體的長度(以位元組數) |
String |
getContentType() |
得到請求體的MIME類型 |
ServletInputStream |
getInputStream() |
得到請求體中一行的二進位流 |
String |
getParameter(String name) |
返回name指定參數的參數值 |
Enumeration |
getParameterNames() |
返回可用參數名的枚舉 |
String[] |
getParameterValues(String name) |
返回包含參數name的所有值的數組 |
String |
getProtocol() |
返回請求用的協議類型及版本號碼 |
String |
getScheme() |
返回請求用的協議名,如:http.https及ftp |
String |
getServerName() |
返回接受請求的伺服器主機名稱 |
int |
getServerPort() |
返回伺服器接受此請求所用的連接埠號碼 |
BufferedReader |
getReader() |
返回解碼過了的請求體 |
String |
getRemoteAddr() |
返回傳送此請求的用戶端IP地址 |
String |
getRemoteHost() |
返回傳送此請求的用戶端主機名稱 |
void |
setAttribute(String key,Object obj) |
設定屬性的屬性值 |
String |
getRealPath(String path) |
返回一虛擬路徑的真實路徑 |
response對象:產生伺服器端響應,然後將響應結果發送到用戶端
response.getContentType() 得到響應資訊的頭資訊。
response.sendRedirect(String URL)重新定向頁面
out對象:表示輸出資料流,此輸出資料流將作為請求發送到用戶端
1.public abstract void clear()
清除緩衝區中的內容,不將資料發送至用戶端。
2.public abstract void clearBuffer()
將資料發送至用戶端後,清除緩衝區中的內容。
3.public abstarct void close()
關閉輸出資料流。
4.public abstract void flush()
輸出緩衝區中的資料。
5.public int getBufferSize()
擷取緩衝區的大小。緩衝區的大小可用<%@ page buffer="size" %>設定。
6.public abstract int getRemainning()
擷取緩衝區剩餘空間的大小
7.public boolean isAutoFlush()
擷取用<%@ page is AutoFlush="true/false"%>設定的AutoFlush值。
8.public abstract void newLine()
輸出一個換行字元,換一行。
9.public abstract void print()
顯示各種資料類型的內容。
10.public abstract void println()
分行顯示各種資料類型的內容。
以下的對象是範圍通訊對象,主要作用就是來存放對象的。
session對象:將我們寫個對象放在這個session對象中,我們寫個這個對象就在我們的會話中都存在
使用getAttribute("","")方法來把我們的對象放在session中比如:
Object obj;
session.getAttribute("name",obj); 、、這個地方的name是可以自己寫的
我們要取出來的話就寫
session.getAttribute("name");然後在強制轉換一下,就取出來了
application對象:將我們寫個對象放在這個application對象中,我們寫個對象就在整個應用程式中都存在
放和取的方法是和session對象一樣的
pageContext對象:將我們寫個對象放在這個pageContext對象中我們這個頁面中存在
放和取的方法是和session對象一樣的
******************************************
pageContext對象相當於當前頁面的容器,可以訪問當前頁面的所有對象。
pageContext對象的常用方法:
HttpSession getSession() 取得當前頁面的session對象。
ServletRequest getRequest() 取得當前頁面的request對象。
ServletResponse getResponse( ) 取得當前頁面的response對象。
ServletContext getServletContext() 取得當前頁面的application對象。
ServletConfig getServletConfig() 取得當前頁面的config對象。
Object getPage() 取得當前頁面的page對象。
JspWriter getOut() 取得當前頁面的out對象。
Exception getException() 取得當前頁面的exception對象。
以下這些對象在實際運用中page,config,exception對象用的很少.
paget對象:一般我們使用Page指令來替代使用這個對象
config對象:一樣的我們在頁面中是使用很少的,一般會在Servlet中使用這個
exception對象:用來處理異常的,
下面為這個exception對象來舉個列子;
我有兩個頁面page1.jsp和page2.jsp
page1.jsp的代碼
<%@ page contentType="text/html; charset=GBK" errorPage="page2.jsp" %>
<html>
<head>
<title>
page1
</title>
</head>
<body >
<h1>
<%=(3/0)%>
</body>
</html>
顯然這個頁面是有異常的就是我用綠色標出的地方,那麼我在紅色寫的地方就是表示只要這個頁面有異常就自動跳到page2.jsp中。
現在這個page2.jsp就是剛才page1.jsp出錯的時候跳過來的,所以我的page2.jsp一定要指定為錯誤頁面,也就是紅色地方,
這樣我就可以在頁面寫上<%=exception.toString() %>,他就顯示在page1.jsp上的異常資訊了,
page2.jsp的代碼
<%@ page contentType="text/html; charset=GBK" isErrorPage="true" %>
<html>
<head>
</head>
<body bgcolor="#ffffff">
<h1>程式發生了錯誤</h1>
<%=exception.toString() %>
</body>
</html>