(一)內建對象的介紹
jsp為簡化頁面的開發提供了一些內部對象.這些內部對象不需要由jsp的編寫者執行個體化,他們由容器實現和管理,在所有的jsp頁面上
都能使用內部對象.所有的隱藏對象只有對Scriptlet或者運算式有用,在jsp聲明中不可用.
1.out
out對象被封裝成javax.servlet.jsp.jspWriter介面.它表示為客戶開啟的輸出資料流,PrintWriter使用它向用戶端發送輸出資料流.
用於向用戶端輸出資料.
out.println(Object),out.print(Object)輸出Object類型. println方法在內容後面添加一空行,但是這個空行被瀏覽器解析掉,所以
如果要換行,要添加out.println("<br>").
out.newLine() 輸出一個換行字元.
out.flush() 輸出緩衝區裡的資料.
out.close() 關閉輸出資料流.
out.clearBuffer() 清除緩衝區裡的資料,並把資料輸出到用戶端.
out.clear() 清除緩衝區裡的資料,但不把資料輸出到用戶端.
out.getBufferSize()獲得緩衝區的大小.
out.getRemaining() 獲得緩衝區中沒有被佔用的空間的大小.
out.isAutoFlush() 返回布爾值.
2.request
request對象代表請求對象,它被封裝成httpServletRequest介面.通過getparameter方法可以得到request的參數,通過GET,POST,HEAD
等方法可以得到request的類型.通過Cookies,Referer等可以得到請求的Http頭.
來自用戶端的請求經Servlet容器處理後,由request對象進行封裝.它作為jspService()方法的一個參數由容器傳遞給jsp頁面.
getAttributeNames() 返回request對象的所有屬性的名字集合,其結果是一個枚舉類型.
getAttribute(String name) 返回由name指定的屬性值,如果不存在,則返回null.
isUserInRole(String role) 判斷認證後的使用者是否屬於邏輯的role中的成員.
getCookies() 返回用戶端所有的cookie對象,結果是一個Cookie數組.
getCharacterEncoding() 返回請求中的字元編碼方式.
getContentLength() 返回請求的Body的長度,如果不確定長度,則返回-1.
getHeader(String name) 獲得HTTP協議定義的檔案頭資訊.
getHeaders(String name) 返回指定名字的request Header的所有值,其結果是一個枚舉類型.
getHeaderNames() 返回所有的request Header的名字.枚舉.
getInputStream() 返回請求的輸入資料流,用於獲得請求中的資料.
getMethod() 獲得用戶端向伺服器端傳送資料的方法,如:post,get,header,trace.
getParameter(String name) 獲得用戶端傳送給伺服器端的參數值,該參數是由name指定的,通常是表單中的參數.
getParameterNames() 獲得用戶端發送給伺服器端的所有參數的名字.
getParameterValues(String name) 獲得指定參數的所有值,參數由name指定.
getProtocol() 擷取用戶端向伺服器端傳送資料所依據的協議名稱.
getQueryString() 獲得查詢字串,該字串是由用戶端以get方法向伺服器端傳送的.
getRequestURI() 擷取發出請求字串的用戶端地址.
getRemoteAddr() 擷取用戶端的IP地址.
getRemoteHost() 擷取用戶端的名字.
getSession([Boolean create]) 返回和請求有關的session.當由參數create且這個參數為true,如果用戶端還沒有建立session,那麼將建立一個新的session.
getServerName() 擷取伺服器的名字.
getServerPath() 擷取用戶端所請求的指令檔的檔案路徑.
getServerPort() 擷取伺服器的連接埠號碼.
removeAttribute(String name) 刪除請求中的一個屬性.
setAttribute(String name,java.lang.Ojbect objt) 設定名字為name的request參數的值.
3.response
response被封裝成HttpServletResponse介面.它封裝了jsp產生的響應,然後被發送到用戶端以響應客戶的請求.和request對象一樣,
它由容器產生,作為jspService()方法的參數被傳入jsp.因為輸出資料流是緩衝的,所以可以設定Http狀態代碼和response頭.
addCookie(Cookie cook) 添加一個Cookie對象,用來儲存用戶端的使用者資訊.
addHeader(String name,String value) 添加HTTP檔案頭資訊,該header將傳到用戶端去,如果已經存在同名的header,則會覆蓋以前的header.
containsHeader(String name) 判斷指定名字的http檔案頭是否已經存在,然後返回boolean.
encodeURL() 使用sessionId來封裝URL.
flushBuffer() 強制把當前緩衝區的內容發送到用戶端.
getBufferSize() 返回緩衝區的大小.
getOutputStream() 返回到用戶端的輸出資料流對象.
sendError(int) 向用戶端發送錯誤的資訊. 例如:404是指網頁不存在或者請求的頁面無效.
sendRedirect(String location) 把響應發送到另一個位置進行處理.
setContentType(String contentType) 設定響應的MIMEL類型.
setHeaders(String name,Strng value) 設定指定名字的Http檔案頭的值,如果該值已經存在,則新值會覆蓋原有的舊值.
4.session
session對象用來儲存每個使用者的資訊.以便跟蹤每個使用者的操作狀態.其中session資訊儲存在容器裡,session的ID儲存在客戶機的Cookie中.
和session對應的是HttpSession介面.
getAttribute(String name) 擷取與指定名字name相聯絡的屬性.
在jsp1.0中,這個方法為session.getValue(String name).
getAttributeNames() 返回session對象中儲存的每一個屬性對象.
getCreationTime() 返回session被建立的時間.
getId() 此方法返回唯一標識,每個session的ID是不同的.