標籤:enter lan fill remove hash 判斷 http etl vax
JSP九大對象:內建對象(又叫隱含對象,有9個內建對象):不需要預先聲明就可以在指令碼代碼和運算式中隨意使用。
JSP中九大內建對象為:
- request 請求對象 類型 javax.servlet.ServletRequest 範圍 Request
- response 響應對象 類型 javax.servlet.SrvletResponse 範圍 Page
- pageContext 頁面內容物件 類型 javax.servlet.jsp.PageContext 範圍 Page
- session 會話對象 類型 javax.servlet.http.HttpSession 範圍 Session
- application 應用程式物件 類型 javax.servlet.ServletContext 範圍 Application
- out 輸出對象 類型 javax.servlet.jsp.JspWriter 範圍 Page
- config 設定物件 類型 javax.servlet.ServletConfig 範圍 Page
- page 頁面對象 類型 javax.lang.Object 範圍 Page
- exception 例外對象 類型 javax.lang.Throwable 範圍 page
一、request對象:代表的是來自用戶端的請求,例如我們在FORM表單中填寫的資訊等,是最常用的對象。用戶端的請求資訊被封裝在request對象中,通過它才能瞭解到客戶的需求,然後做出響應。它是HttpServletRequest類的執行個體。範圍為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 對象來組織發送到用戶端的資料。但是由於組織方式比較底層,所以不建議普通讀者使用,需要向用戶端發送文字時直接使用。它是HttpServletResponse類的執行個體。範圍為page(頁面執行期)。
常用方法:
- String getCharacterEncoding() 返迴響應用的是何種字元編碼
- ServletOutputStream getOutputStream() 返迴響應的一個二進位輸出資料流
- PrintWriter getWriter() 返回可以向用戶端輸出字元的一個對象
- void setContentLength(int len) 設定回應標頭長度
- void setContentType(String type) 設定響應的MIME類型
- sendRedirect(String location) 重新定向用戶端的請求
三、session對象:指的是用戶端與伺服器的一次會話,從客戶連到伺服器的一個WebApplication開始,直到用戶端與伺服器中斷連線為止。它是HttpSession類的執行個體。範圍session(會話期—)。
常用方法:
-
- long getCreationTime() 返回SESSION建立時間
- public String getId() 返回SESSION建立時JSP引擎為它設的惟一ID號
- long getLastAccessedTime() 返回此SESSION裡用戶端最近一次請求時間
- int getMaxInactiveInterval() 返回兩次請求間隔多長時間此SESSION被取消(ms)
- String[] getValueNames() 返回一個包含此SESSION中所有可用屬性的數組
- void invalidate() 取消SESSION,使SESSION不可用
- boolean isNew() 返回伺服器建立的一個SESSION,用戶端是否已經加入
- void removeValue(String name) 刪除SESSION中指定的屬性
- void setMaxInactiveInterval() 設定兩次請求間隔多長時間此SESSION被取消(ms)
四、out對象 :out對象是JspWriter類的執行個體,是向用戶端輸出內容常用的對象 。範圍為page(頁面執行期)
常用方法:
- void clear() 清除緩衝區的內容
- void clearBuffer() 清除緩衝區的當前內容
- void flush() 清空流
- int getBufferSize() 返回緩衝區以位元組數的大小,如不設緩衝區則為0
- int getRemaining() 返回緩衝區還剩餘多少可用
- boolean isAutoFlush() 返回緩衝區滿時,是自動清空還是拋出異常
- void close() 關閉輸出資料流
五、page對象:page對象就是指向當前JSP頁面本身,有點象類中的this指標,它是java.lang.Object類的執行個體 。“page” 對象代表了正在啟動並執行由JSP檔案產生的類對象,不建議一般讀者使用。 範圍 page
常用方法:
- class getClass 返回此Object的類
- int hashCode() 返回此Object的hash碼
- boolean equals(Object obj) 判斷此Object是否與指定的Object對象相等
- void copy(Object obj) 把此Object拷貝到指定的Object對象中
- Object clone() 複製此Object對象
- String toString() 把此Object對象轉換成String類的對象
- void notify() 喚醒一個等待的線程
- void notifyAll() 喚醒所有等待的線程
- void wait(int timeout) 使一個線程處於等待直到timeout結束或被喚醒
- void wait() 使一個線程處於等待直到被喚醒
- void enterMonitor() 對Object加鎖
- void exitMonitor() 對Object開鎖
六、application對象:實現了使用者間資料的共用,可存放全域變數。它開始於伺服器的啟動,直到伺服器的關閉,在此期間,此對象將一直存在;這樣在使用者的前後串連或不同使用者之間的串連中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他使用者對此的訪問。伺服器的啟動和關閉決定了application對象的生命。它是ServletContext類的執行個體。範圍application
常用方法:
- Object getAttribute(String name) 返回給定名的屬性值
- Enumeration getAttributeNames() 返回所有可用屬性名稱的枚舉
- void setAttribute(String name,Object obj) 設定屬性的屬性值
- void removeAttribute(String name) 刪除一屬性及其屬性值
- String getServerInfo() 返回JSP(SERVLET)引擎名及版本號碼
- String getRealPath(String path) 返回一虛擬路徑的真實路徑
- ServletContext getContext(String uripath) 返回指定WebApplication的application對象
- int getMajorVersion() 返回伺服器支援的Servlet API的最大版本號碼
- int getMinorVersion() 返回伺服器支援的Servlet API的最大版本號碼
- String getMimeType(String file) 返回指定檔案的MIME類型
- URL getResource(String path) 返回指定資源(檔案及目錄)的URL路徑
- InputStream getResourceAsStream(String path) 返回指定資源的輸入資料流
- RequestDispatcher getRequestDispatcher(String uripath) 返回指定資源的RequestDispatcher對象
- Servlet getServlet(String name) 返回指定名的Servlet
- Enumeration getServlets() 返回所有Servlet的枚舉
- Enumeration getServletNames() 返回所有Servlet名的枚舉
- void log(String msg) 把指定訊息寫入Servlet的記錄檔
- void log(Exception exception,String msg) 把指定異常的棧軌跡及錯誤訊息寫入Servlet的記錄檔
- void log(String msg,Throwable throwable) 把棧軌跡及給出的Throwable異常的說明資訊 寫入Servlet的記錄檔
七、pageContext對象提供了對JSP頁面內所有的對象及名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當於頁面中所有功能的集大成者,它的本類名也叫pageContext。用域 Pageconfig對象
常用方法:
- JspWriter getOut() 返回當前用戶端響應被使用的JspWriter流(out)
- HttpSession getSession() 返回當前頁中的HttpSession對象(session)
- Object getPage() 返回當前頁的Object對象(page)
- ServletRequest getRequest() 返回當前頁的ServletRequest對象(request)
- ServletResponse getResponse() 返回當前頁的ServletResponse對象(response)
- Exception getException() 返回當前頁的Exception對象(exception)
- ServletConfig getServletConfig() 返回當前頁的ServletConfig對象(config)
- ServletContext getServletContext() 返回當前頁的ServletContext對象(application)
- void setAttribute(String name,Object attribute) 設定屬性及屬性值
- void setAttribute(String name,Object obj,int scope) 在指定範圍內設定屬性及屬性值
- public Object getAttribute(String name) 取屬性的值
- Object getAttribute(String name,int scope) 在指定範圍內取屬性的值
- public Object findAttribute(String name) 尋找一屬性,返回起屬性值或NULL
- void removeAttribute(String name) 刪除某屬性
- void removeAttribute(String name,int scope) 在指定範圍刪除某屬性
- int getAttributeScope(String name) 返回某屬性的作用範圍
- Enumeration getAttributeNamesInScope(int scope) 返回指定範圍內可用的屬性名稱枚舉
- void release() 釋放pageContext所佔用的資源
- void forward(String relativeUrlPath) 使當前頁面重導到另一頁面
- void include(String relativeUrlPath) 在當前位置包含另一檔案
八、config對象:config對象是在一個Servlet初始化時,JSP引擎向它傳遞資訊用的,此資訊包括Servlet初始化時所要用到的參數(通過屬性名稱和屬性值構成)以及伺服器的有關資訊(通過傳遞一個ServletContext對象)。範圍 Page
常用方法:
- ServletContext getServletContext() 返回含有伺服器相關資訊的ServletContext對象
- String getInitParameter(String name) 返回初始化參數的值
- Enumeration getInitParameterNames() 返回Servlet初始化所需所有參數的枚舉
九、exception對象:是一個例外對象,當一個頁面在運行過程中發生了例外,就產生這個對象。如果一個JSP頁面要應用此對象,就必須把isErrorPage設為true,否則無法編譯。他實際上是java.lang.Throwable的對象.範圍 page
常用方法:
- String getMessage() 返回描述異常的訊息
- String toString() 返回關於異常的簡短描述訊息
- void printStackTrace() 顯示異常及其棧軌跡
- Throwable FillInStackTrace() 重寫異常的執行棧軌跡
範圍規定的是變數的有效期間限
如果把變數放到pageContext裡,就說明它的範圍是page,它的有效範圍只在當前jsp頁面裡。
從把變數放到pageContext開始,到jsp頁面結束,你都可以使用這個變數。
如果把變數放到request裡,就說明它的範圍是request,它的有效範圍是當前請求周期。
所謂請求周期,就是指從http請求發起,到伺服器處理結束,返迴響應的整個過程。在這個過程中可能使用forward的方式跳轉了多個jsp頁面,在這些頁面裡你都可以使用這個變數。
如果把變數放到session裡,就說明它的範圍是session,它的有效範圍是當前會話。
所謂當前會話,就是指從使用者開啟瀏覽器開始,到使用者關閉瀏覽器這中間的過程。這個過程可能包含多個請求響應。也就是說,只要使用者不關瀏覽器,伺服器就有辦法知道這些請求是一個人發起的,整個過程被稱為一個會話(session),而放到會話中的變數,就可以在當前會話的所有請求裡使用。
如果把變數放到application裡,就說明它的範圍是application,它的有效範圍是整個應用。
整個應用是指從應用啟動,到應用結束。我們沒有說“從伺服器啟動,到伺服器關閉”,是因為一個伺服器可能部署多個應用,當然你關閉了伺服器,就會把上面所有的應用都關閉了。
application範圍裡的變數,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用。
與上述三個不同的是,application裡的變數可以被所有使用者共用。如果使用者甲的操作修改了application中的變數,使用者乙訪問時得到的是修改後的值。這在其他scope中都是不會發生的,page, request,session都是完全隔離的,無論如何修改都不會影響其他人的資料。
jsp九大內建對象及四個範圍