標籤:
內建對象特點:
1. 由JSP規範提供,不用編寫者執行個體化。
2. 通過Web容器實現和管理
3. 所有JSP頁面均可使用
4. 只有在指令碼元素的運算式或程式碼片段中才可使用(<%=使用內建對象%>或<%使用內建對象%>)
常用內建對象:
1. 輸出輸入對象:request對象、response對象、out對象
2. 通訊控制對象:pageContext對象、session對象、application對象
3. Servlet對象:page對象、config對象
4. 錯誤處理對象:exception對象
Request(Javax.servlet.ServletRequest)它包含了有關瀏覽器請求的資訊.通過該對象可以獲得請求中的頭資訊、Cookie和請求參數。
Response(Javax.servlet.ServletResponse)作為JSP頁面處理結果返回給使用者的響應儲存在該對象中。並提供了設定響應內容、回應標頭以及重新導向的方法(如cookies,頭資訊等)
Out(Javax.servlet.jsp.JspWriter)用於將內容寫入JSP頁面執行個體的輸出資料流中,提供了幾個方法使你能用於向瀏覽器回送輸出結果。
pageContext(Javax.servlet.jsp.PageContext)描述了當前JSP頁面的運行環境。可以返回JSP頁面的其他隱式對象及其屬性的訪問,另外,它還實現將控制權從當前頁面傳輸至其他頁面的方法。
Session(javax.servlet.http.HttpSession)會話Object Storage Service有關此會話的資訊,也可以將屬性賦給一個會話,每個屬性都有名稱和值。會話對象主要用於儲存和檢索屬性值。
Application(javax.servle.ServletContext)儲存了運行JSP頁面的servlet以及在同一應用程式中的任何Web組件的上下文資訊。
Page(Java.lang.Object)表示當前JSP頁面的servlet執行個體
Config(javax.servlet.ServletConfig)該對象用於存取servlet執行個體的初始化參數。
Exception(Javax.lang.Throwable)在某個頁面拋出異常時,將轉寄至JSP錯誤頁面,提供此對象是為了在JSP中處理錯誤。只有在錯誤頁面中才可使用<%@page isErrorPage=“true”%>
Jsp內建對象 |
功能 |
主要方法 |
out |
向用戶端輸出資料 |
print() println() flush() clear() isAutoFlush() getBufferSize() close() ………… |
request |
向用戶端請求資料 |
getAttributeNames() getCookies() getParameter() getParameterValues() setAttribute() getServletPath() ………….. |
response |
封裝了jsp產生的響應,然後被發送到用戶端以響應客戶的請求 |
addCookie() sendRedirect() setContentType() flushBuffer() getBufferSize() getOutputStream() sendError() containsHeader()…………… |
application |
|
|
config |
表示Servlet的配置,當一個Servlet初始化時,容器把某些資訊通過此對象傳遞給這個Servlet |
getServletContext() getServletName() getInitParameter() getInitParameterNames()…………… |
page |
Jsp實作類別的執行個體,它是jsp本身,通過這個可以對它進行訪問 |
flush()……… |
pagecontext |
為JSP頁麵包裝頁面的上下文。管理對屬於JSP中特殊可見部分中己經命名物件的該問 |
forward() getAttribute() getException() getRequest() getResponse() getServletConfig() getSession() getServletContext() setAttribute() removeAttribute() findAttribute() …………… |
session |
用來儲存每個使用者的資訊,以便跟蹤每個使用者的操作狀態 |
getAttribute() getId() getAttributeNames() getCreateTime() getMaxInactiveInterval() invalidate() isNew() |
exception |
反映啟動並執行異常 |
getMessage()………… |
pageContext, request, session、application四個範圍中
1、如果把變數放到pageContext裡,就說明它的範圍是page,它的有效範圍只在當前jsp頁面裡。 從把變數放到pageContext開始,到jsp頁面結束,你都可以使用這個變數。
2、如果把變數放到request裡,就說明它的範圍是request,它的有效範圍是當前請求周期。所謂請求周期,就是指從http請求發起,到伺服器處理結束,返迴響應的整個過程。在這個過 程中可能使用forward的方式跳轉了多個jsp頁面,在這些頁面裡你都可以使用這個變數。 3、如果把變數放到session裡,就說明它的範圍是session,它的有效範圍是當前會話。所謂當前會話,就是指從使用者開啟瀏覽器開始,到使用者關閉瀏覽器這中間的過程。這個過程可能包含多個請求響應。也就是說,只要使用者不關瀏覽器,伺服器就有辦法知道這些請求是一個人發起的,整個過程被稱為一個會話(session),而放到會話中的變數,
4、如果把變數放到application裡,就說明它的範圍是application,它的有效範圍是整個應用。整個應用是指從應用啟動,到應用結束。我們沒有說“從伺服器啟動,到伺服器關閉”是因為一個伺服器可能部署多個應用,當然你關閉了伺服器,就會把上面所有的應用都關閉了。application範圍裡的變數,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用。與上述三個不同的是,application裡的變數可以被所有使用者共用。如果使用者甲的操作修改了application中的變數,使用者乙訪問時得到的是修改後的值。這在其他scope中都是不會發生的,page, request, session都是完全隔離的,無論如何修改都不會影響其他
Jsp的四大範圍與九大對象