內置對象特點:
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)會話對象存儲有關此會話的信息,也可以將屬性賦給一個會話,每個屬性都有名稱和值。會話對象主要用於存儲和檢索屬性值。
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頁面結束,你都可以使用這個變量。
4、如果把變量放到application裏,就說明它的作用域是application,它的有效範圍是整個應用。整個應用是指從應用啓動,到應用結束。我們沒有說“從服務器啓動,到服務器關閉”是因爲一個服務器可能部署多個應用,當然你關閉了服務器,就會把上面所有的應用都關閉了。application作用域裏的變量,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用。與上述三個不同的是,application裏的變量可以被所有用戶共用。如果用戶甲的操作修改了application中的變量,用戶乙訪問時得到的是修改後的值。這在其他scope中都是不會發生的,page, request, session都是完全隔離的,無論如何修改都不會影響其他.
原文地址:https://www.cnblogs.com/mengzhen123/p/5968831.html