1. 程式人生 > >JSP中的內建物件(9個)

JSP中的內建物件(9個)

9個內建物件

 JSP中的內建物件(9個)

物件名                             物件的型別                                                               範圍
pageContext                  Javax.servlet.jsp.PageContext                               Page
page                               Javax.servlet.jsp.HttpJspPage                               Page
request                           Javasx.servlet.jsp.HttpServletRequest                   Request
response                        Javax.servlet.jsp.HttpServletResponse                 Page
session                           Javax.servlet.HttpSessio                                        Session
application                     Javax.servlet.ServletContext                                  Application
out                                   Javax.servlet.jsp.JspWriter                                    Page
config                              Javax.servlet.ServletConfig                                   Page
exception                        Java.lang.ThrowAble                                             page

九大內建物件成員,方法

內建物件是不需要宣告,直接可以在JSP中使用的物件,JSP有以下幾種內建物件: 
1.request物件 
request表示HttpServletRequest物件。它包含了有關瀏覽器請求的資訊,並且提供了幾個用於獲取cookie, header, 和session資料的有用的方法。客戶端的請求資訊被封裝在request物件中,通過它才能瞭解到客戶的需求,然後做出響應。 

1 Object getAttribute(String name) 返回指定屬性的屬性值,該屬性不存在時返回null。 
2 Enumeration getAttributeNames() 返回所有可用屬性名的列舉 
3 String getAuthType() ;返回用來保護servlet的認證方法的名稱,未受保護時返回null。 
4 String getCharacterEncoding() 返回字元編碼方式 
5 int getContentLength() 返回請求體的長度(以位元組數),不能確定長度時返回-1。 
6 String getContentType() 得到請求體的MIME型別 
7 String getContentPath() 返回請求的路徑。 
8 Cookie[] getCookies() 返回客戶端所有的Cookie的陣列。 
9 Enumeration getHeaderNames() 返回所有HTTP頭的名稱的集合。 
10 Enumeration getHeaders( String name ) 返回指定HTTP頭的所有值的集合。 
11 String getHeader( String name ) 返回指定名稱的HTTP頭的資訊。 
12 long getDateHeader( String name ) 返回指定名稱的Data型別的HTTP頭的資訊。 
13 int getIntHeader( String name ) 返回指定名稱的Int型別的HTTP頭的資訊。 
14 ServletInputStream getInputStream() 得到請求體中一行的二進位制流 
15 Locale getLocale() 返回當前頁的Locale物件,可以在response中設定。 
16 Enumeration getLocales() 返回請求中所有的Locale物件的集合。 
17 String getLocalName() 獲取響應請求的伺服器端主機名。 
18 String getLocalAddr() 獲取響應請求的伺服器端地址。 
19 int getLocalPort() 獲取響應請求的伺服器端埠 
20 String getMethod() 獲取客戶端向伺服器端傳送請求的方法(GET、POST)。 
21 String getParameter(String name) 返回name指定引數的引數值 
22 Map getParameterMap() 該方法返回包含請求中所有引數的一個Map物件。 
23 Enumeration getParameterNames() 返回請求中所有引數的集合。 
24 String[] getParameterValues(String name) 返回包含引數name的所有值的陣列 
25 String getQueryString() 返回get方法傳遞的引數字串,該方法不分解出單獨的引數。 
26 String getPathInfo() 取出請求中處於ServletPath和QueryString之間的額外資訊。 
27 String getPathTranslated() 返回用getPathInfo()方法取得的路徑資訊的實際路徑。 
28 String getProtocol() 返回請求使用的協議。可以是HTTP1.1或者HTTP1.0。 
29 BufferedReader getReader() 返回請求的輸入流對應的Reader物件,該方法和getInputStream()方法在一個頁面中只能呼叫一個。 
30 String getRemoteAddr() 返回傳送此請求的客戶端IP地址 
31 String getRemoteHost() 返回傳送此請求的客戶端主機名 
32 String getRemoteUser() 返回經過客戶端驗證的使用者名稱,未經驗證返回null。 
33 int getRemotePort() 返回發出請求的客戶端主機埠。 
34 String getRealPath(String path) 返回一虛擬路徑的真實路徑 
35 RequestDispatcher getRequestDispatcher( String path ) 按給定的路徑生成資源轉向處理介面卡物件。 
36 String getRequestedSessionId() 返回請求的session的標識。 
37 String RequestURI() 返回發出請求的客戶端地址,但是不包括請求的引數字串。 
38 StringBuffer getRequestURI() 返回響應請求的伺服器端地址 
39 String getScheme() 返回請求用的計劃名,如:http.https及ftp等 
40 String getServerName() 返回響應請求的伺服器名稱。 
41 String getServletPath() 獲取客戶端所請求的指令碼檔案的檔案路徑。 
42 int getServerPort() 返回伺服器接受此請求所用的埠號 
43. void removeAttribute( String name ) 在屬性列表中刪除指定名稱的屬性。 
44. void setAttribute( String name, Object value ) 在屬性列表中新增/刪除指定的屬性。 
45. void setCharacterEncoding( String name ) 設定請求的字元編碼格式。 
46. HttpSession getSession() ; 
HttpSession getSession( boolean create ) 獲取session,如果create為true,在無session的情況下建立一個。 
47. boolean isRequestedSessionIdFromCookie() 檢查請求的會話ID是否為通過Cookie傳入。 
48. boolean isRequestedSessionIdFromURL() 檢查請求的會話ID是否為通過URL傳入。 
49. boolean isRequestedSessionIdValid() 檢查請求的會話ID是否仍然有效。 
50. boolean isSecure() 檢查請求是否使用安全連結,如果HTTPS等。 
51. boolean isUserInRole( String role ) 檢查已經通過驗證的使用者是否在是role所指定的角色。 
52. Principal getUserPrincipal() 返回包含使用者登陸名的一個java.security.Principal物件。 
成員: 
String BASIC_AUTH = "BASIC" 
String CLIENT_CERT_AUTH = "CLIENT_CERT" 
String DIGEST_AUTH = "DIGEST" 
String FORM_AUTH = "FORM" 

2.response物件 response 
表示HttpServletResponse物件,主要將JSP容器處理後的結果傳回到客戶端。 

1 void addCookie( Cookie cookie ) 新增一個Cookie物件,儲存客戶端資訊。 
2 void addDateHeader( String name, long value ) 新增一個日期型別的HTTP頭資訊,覆蓋同名的HTTP頭資訊。 
3 void addHeader( String name, String value ) 新增一個HTTP頭,覆蓋同名的舊HTTP頭。 
4 void addIntHeader( String name, int value ) 新增一個整型的HTTP頭,覆蓋同名的舊HTTP頭。 
5 boolean containsHeader( String name ) 判斷指定的HTTP頭是否存在。 
6 String encodeRedirectURL( String url ) 對sendRedirect()方法使用的URL進行編碼。 
7 String encodeURL( String url ) 將URL予以編碼,回傳包含session ID的URL。 
8 void flushBuffer() 強制把當前緩衝區的內容傳送到客戶端。 
9 int getBufferSize() 取得以kb為單位的緩衝區大小。 
10 String getCharacterEncoding() 獲取響應的字元編碼格式。 
11 String getContentType() 獲取響應的型別。 
12 Locale getLocale() 獲取響應的Locale物件。 
13 ServletOutputStream getOutputStream() 返回客戶端的輸出流物件。 
14 PrintWriter getWriter() 獲取輸出流對應的writer物件。 
15 boolean isCommitted() 判斷伺服器端是否已經將資料輸出到客戶端。 
16 void reset() 清空buffer中的所有內容。 
17 void resetBuffer() 情況buffer中所有的內容,但是保留HTTP頭和狀態資訊。 
18 void sendError( int xc, String msg ) 
void sendError( int xc ) 傳送錯誤,包括狀態碼和錯誤資訊。 
19 void sendRedirect( String locationg ) 把響應傳送到另外一個位置進行處理。 
20 void setBufferSize( int size ) 設定以kb為單位的緩衝區大小。 
21 void setCharacterEncoding( String charset )設定響應使用的字元編碼格式。 
22 void setContentLength( int length ) 設定響應的BODY長度。 
23 void setContentType( String type ) 設定響應的型別。 
24 void setDateHeader( String name, long value ) 設定指定名稱的Data型別的HTTP頭的值。 
25 void setHeader( String name, String value ) 設定指定名稱的HTTP頭的值。 
26 void setIntHeader( String name, int value ) 設定指定名稱的int型別的HTTP頭的值。 
27 void setStatus( int xc ) 設定響應狀態碼,新值會覆蓋當前值。 
成員(HTTP狀態碼): 
int SC_CONTINUE = 100 int SC_SWITCHING_PROTOCOLS = 101 
int SC_OK = 200 int SC_NON_AUTHORITATIVE_INFORMATION = 203 
int SC_ACCEPTED = 202 int SC_CREATED = 201 
int SC_NO_CONTENT = 204 int SC_RESET_CONTENT = 205 
int SC_PARTIAL_CONTENT = 206 int SC_MULTIPLE_CHOICES = 300 
int SC_MOVED_PERMANENTLY = 301 int SC_MOVED_TEMPORARILY = 302 
int SC_FOUND = 302 int SC_SEE_OTHER = 303 
int SC_NOT_MODIFIED = 304 int SC_USE_PROXY = 305 
int SC_TEMPORARY_REDIRECT = 307 int SC_BAD_REQUEST = 400 
int SC_UNAUTHORIZED = 401 int SC_PAYMENT_REQUIRED = 402 
int SC_FORBIDDEN = 403 int SC_NOT_FOUND = 404 
int SC_METHOD_NOT_ALLOWED = 405 int SC_NOT_ACCEPTABLE 

3.session物件 
session表示一個請求的javax.servlet.http.HttpSession物件。指的是客戶端與伺服器的一次會話,從客戶連到伺服器的一個WebApplication開始,直到客戶端與伺服器斷開連線為止。 
1 long getCreationTime() 返回SESSION建立時間 
2 public String getId() 返回SESSION建立時JSP引擎為它設的惟一ID號 
3 long getLastAccessedTime() 返回此SESSION裡客戶端最近一次請求時間 
4 int getMaxInactiveInterval() 返回兩次請求間隔多長時間此SESSION被取消(ms) 
5 String[] getValueNames() 返回一個包含此SESSION中所有可用屬性的陣列 
6 void invalidate() 取消SESSION,使SESSION不可用 
7 boolean isNew() 返回伺服器建立的一個SESSION,客戶端是否已經加入 
8 void removeValue(String name) 刪除SESSION中指定的屬性 
9 void setMaxInactiveInterval() 設定兩次請求間隔多長時間此SESSION被取消(ms) 

4.out物件 
out 物件是javax.jsp.JspWriter的一個例項,並提供了幾個方法使你能用於向瀏覽器回送輸出結果。 
1 void clear() 清除緩衝區的內容,但是不輸出到客戶端。 
2 void clearBuffer() 清除緩衝區的當前內容,並輸出到客戶端。 
3 void close()  關閉輸出流,清除所有內容。 

4 void flush() 輸出緩衝區裡面的資料。 
5 int getBufferSize() 返回緩衝區以位元組數的大小,如不設緩衝區則為0 
6 int getRemaining() 返回緩衝區還剩餘多少可用 
7 boolean isAutoFlush() 返回緩衝區滿時,是自動清空還是丟擲異常 
8. void newLine() 輸出一個換行字元。 
9. void print( boolean b ) 將指定型別的資料輸出到Http流,不換行 
10. void println( boolean b ) 將指定型別的資料輸出到Http流,並輸出一個換行符。 
11. 
Appendable append( char c ) 
Appendable append( CharSequence cxq, int start, int end ) 
Appendable append( CharSequence cxq ) 
將一個字元或者實現了CharSequence介面的物件新增到輸出流的後面。 
成員: 
int DEFAULT_BUFFER = 0 - 預設緩衝區大小 
int NO_BUFFER = -1 - writer是否處於緩衝輸出狀態 
int UNBOUNDED_BUFFER = -2 - 是否限制緩衝區大小 


5.page物件 
page物件就是指向當前JSP頁面本身,有點象類中的this指標,它是java.lang.Object類的例項 
1 class getClass 返回此Object的類 
2 int hashCode() 返回此Object的hash碼 
3 boolean equals(Object obj) 判斷此Object是否與指定的Object物件相等 
4 void copy(Object obj) 把此Object拷貝到指定的Object物件中 
5 Object clone() 克隆此Object物件 
6 String toString() 把此Object物件轉換成String類的物件 
7 void notify() 喚醒一個等待的執行緒 
8 void notifyAll() 喚醒所有等待的執行緒 
9 void wait(int timeout) 使一個執行緒處於等待直到timeout結束或被喚醒 
10 void wait() 使一個執行緒處於等待直到被喚醒 
11 void enterMonitor() 對Object加鎖 
12 void exitMonitor() 對Object開鎖 


6.application物件 
applicaton 表示一個javax.servlet.ServletContext物件。他實現了使用者間資料的共享,可存放全域性變數。它 

開始於伺服器的啟動,直到伺服器的關閉,在此期間,此物件將一直存在;這樣在使用者的前後連線或不同使用者之 

間的連線中,可以對此物件的同一屬性進行操作;在任何地方對此物件屬性的操作,都將影響到其他使用者對此的 

訪問。伺服器的啟動和關閉決定了application物件的生命。 

1 Object getAttribute(String name) 返回給定名的屬性值 
2 Enumeration getAttributeNames() 返回所有可用屬性名的列舉 
3 void setAttribute(String name,Object obj) 設定屬性的屬性值 
4 void removeAttribute(String name) 刪除一屬性及其屬性值 
5 String getServerInfo() 返回JSP(SERVLET)引擎名及版本號 
6 String getRealPath(String path) 返回一虛擬路徑的真實路徑 
7 ServletContext getContext(String uripath) 返回指定WebApplication的application物件 
8 int getMajorVersion() 返回伺服器支援的Servlet API的最大版本號 
9 int getMinorVersion() 返回伺服器支援的Servlet API的最大版本號 
10 String getMimeType(String file) 返回指定檔案的MIME型別 
11 URL getResource(String path) 返回指定資源(檔案及目錄)的URL路徑 
12 InputStream getResourceAsStream(String path) 返回指定資源的輸入流 
13 RequestDispatcher getRequestDispatcher(String uripath) 返回指定資源的RequestDispatcher物件 
14 Servlet getServlet(String name) 返回指定名的Servlet 
15 Enumeration getServlets() 返回所有Servlet的列舉 
16 Enumeration getServletNames() 返回所有Servlet名的列舉 
17 void log(String msg) 把指定訊息寫入Servlet的日誌檔案 
18 void log(Exception exception,String msg) 把指定異常的棧軌跡及錯誤訊息寫入Servlet的日誌檔案 
19 void log(String msg,Throwable throwable) 把棧軌跡及給出的Throwable異常的說明資訊 寫入Servlet的 

日誌檔案。 

7.exception物件 
exception物件是一個例外物件,當一個頁面在執行過程中發生了例外,就產生這個物件。如果一個JSP頁面要應 

用此物件,就必須把isErrorPage設為true,否則無法編譯。他實際上是java.lang.Throwable的物件。 

8.pageContext物件 
pageContext表示一個javax.servlet.jsp.PageContext物件。pageContext物件提供了對JSP頁面內所有的物件及 

名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值 

。 

1 JspWriter getOut() 返回當前客戶端響應被使用的JspWriter流(out) 
2 HttpSession getSession() 返回當前頁中的HttpSession物件(session) 
3 Object getPage() 返回當前頁的Object物件(page) 
4 ServletRequest getRequest() 返回當前頁的ServletRequest物件(request) 
5 ServletResponse getResponse() 返回當前頁的ServletResponse物件(response) 
6 Exception getException() 返回當前頁的Exception物件(exception) 
7 ServletConfig getServletConfig() 返回當前頁的ServletConfig物件(config) 
8 ServletContext getServletContext() 返回當前頁的ServletContext物件(application) 
9 void setAttribute(String name,Object attribute) 設定屬性及屬性值 
10 void setAttribute(String name,Object obj,int scope) 在指定範圍內設定屬性及屬性值 
11 public Object getAttribute(String name) 取屬性的值 
12 Object getAttribute(String name,int scope) 在指定範圍內取屬性的值 
13 public Object findAttribute(String name) 尋找一屬性,返回起屬性值或NULL 
14 void removeAttribute(String name) 刪除某屬性 
15 void removeAttribute(String name,int scope) 在指定範圍刪除某屬性 
16 int getAttributeScope(String name) 返回某屬性的作用範圍 
17 Enumeration getAttributeNamesInScope(int scope) 返回指定範圍內可用的屬性名列舉 
18 void release() 釋放pageContext所佔用的資源 
19 void forward(String relativeUrlPath) 使當前頁面重導到另一頁面 
20 void include(String relativeUrlPath) 在當前位置包含另一檔案 


9.config物件 
config表示一個javax.servlet.ServletConfig物件。 
config物件是在一個Servlet初始化時,JSP引擎向它傳遞資訊用的,此資訊包括Servlet初始化時所要用到的參 

數(通過屬性名和屬性值構成)以及伺服器的有關資訊(通過傳遞一個ServletContext物件。) 

1 ServletContext getServletContext() 返回含有伺服器相關資訊的ServletContext物件 
2 String getInitParameter(String name) 返回初始化引數的值 
3 Enumeration getInitParameterNames() 返回Servlet初始化所需所有引數的列舉