JSP內建物件(一)
為了簡化web開發,在JSP中定義了一些由JSP容器實現和管理的內建物件,這些物件可以直接在JSP頁面中使用,而不需要JSP頁面編寫者對他們進行例項化。
request物件
用來獲取客戶端的資訊,例如我們在表單標籤中填寫的資訊等。JSP容器會將客戶端的請求封裝在request中。在客戶端發出請求是會建立request物件,在請求結束後,則銷燬request物件。
request物件是由 javax.servlet.http.HttpServletRequest 類的例項,作用域為 request,常用方法有:
方法名 | 描述 | 返回值型別 |
---|---|---|
getAttribute(String name) | 獲取指定的屬性 | Object |
setAttribute(String name,Object value) | 將指定的屬性的值設為Value | void |
getParameter(String name) | 獲取請求引數名為name的引數值 | String |
getParameterValues() | 獲取name請求引數的值 | String[] |
getParameterMap() | 獲取所有請求引數名和請求引數值所組成的Map物件 | Map |
setCharacterEncoding(String encoding) | 設定請求編碼 | void |
response物件
response物件包含了從JSP頁面返回客戶端所有的資訊,response物件經常用於設定HTTP標題,新增Cookie,設定響應內容的型別和狀態,傳送HTTP重定向和編碼URL。
response物件是由 javax.servlet.http.HttpServletResponse 類的例項,作用域為 page,常用方法有:
方法名 | 描述 | 返回值型別 |
---|---|---|
addCookie(Cookie cookie) | 新增一個Cookie物件,用於在客戶端儲存特定的資訊 | void |
addHeader(String name,String value) | 新增HTTP頭資訊,該Header資訊將傳送到客戶端 | viod |
containsHeader(String name) | 用於判斷指定名字的HTTP檔案頭是否存在 | void |
sendError(int errorCode) | 向客戶端傳送錯誤的狀態碼 | void |
sendRedirect(String url) | 重定向JSP檔案 | void |
setContentType(String contentType) | 設定MIME型別與編碼方式 | void |
out物件
out物件是一個緩衝的輸出流,用來向客戶端返回資訊。由於向客戶端輸出時要進行連線,所有總是採用緩衝輸出的方式,因此out是緩衝輸出流。
out物件是由 javax.servlet.jsp.JspWriter 類的例項,作用域為 page,常用方法有:
方法名 | 描述 | 返回值型別 | 異常 |
---|---|---|---|
clear() | 清楚緩衝的內容,但不把資料輸出到客戶端 | void | java.io.IOException |
clearBuffer() | 清楚緩衝區中的內容,同時將資料輸出到客戶端 | void | java.io.IOException |
close() | 關閉緩衝區並輸出緩衝區中的資料 | void | java.io.IOException |
flush() | 輸出緩衝區的資料 | void | java.io.IOException |
getBufferSize() | 獲取緩衝區的大小 | int | |
getRemaining() | 獲取剩餘緩衝區的大小 | int | |
isAutoFlush() | 緩衝區是否進行自動清除 | Boolean | |
newLine() | 輸出一個換行符 | void | java.io.IOException |
print(String str) | 向客戶端輸出資料 | void | java.io.IOException |
pringln(String str) | 向客戶端輸出資料並換行 | void | java.io.IOException |
session物件
session物件是會話物件,用來記錄每個客戶端訪問的狀態。所謂的會話指的是從一個客戶端開啟瀏覽器與伺服器建立連線,到這個客戶端關閉瀏覽器與伺服器斷開連線的過程。
session物件是 javax.servlet.http.HttpSession 類的例項,作用域為 page,常用方法:
方法名 | 描述 | 返回值 |
---|---|---|
getAttribute(String name) | 獲取session範圍內的name值 | Object |
aetAttribute(String name,Object value) | 設定session範圍內name屬性的值為value | void |
removeAttribute(String name) | 刪除session範圍內name屬性的值 | void |
getAttributeNames() | 獲取所有session物件中存放的屬性名 | Enumeration |
getCreationTime() | 返回session被建立的時間 | long |
getId() | 返回session建立時JSP容器所設定唯一標示 | String |
getLastAccessedTime() | 返回使用者最後一次通過session傳送請求的時間,單位為毫秒 | long |
getMaxInactiveInterval() | 返回session失效的時間,即兩次請求間隔多長時間該session就被取消,單位為秒 | int |
isNew() | 判斷是否為新的session | Boolean |
invalidate() | 清空session的內容 | void |
application物件
application物件用於獲取和設定Servlet的相關資訊,它的生命週期是從伺服器啟動知道伺服器關閉為止。
application物件 javax.servlet.ServletContext 類的例項,作用域 application,常用方法:
方法 | 描述 | 返回 |
---|---|---|
setAttribute(Stirng name,Object value) | 以鍵值對的方式,將一個物件的值放到application中 | void |
getAttribute(String name) | 根據屬性名獲取application中存放的值 | void |