博客已遷移到CSDN《https://blog.csdn.net/qq_33375499》
jsp運行原理:
每個jsp頁面在第一被訪問時,WEB容器都會把該jsp頁面翻譯成一個_jspServlet(實際上是一個servlet),然后按照servlet的調用方式進行調用,在調用的過程中,會傳遞或創建九大web內置對象。
九大內置對象:
1.pageContext
pageContext對象是JSP技術中最重要的一個對象,這個對象不僅封裝了其他8個內置對象,自身還是一個容器,可以用於存儲數據。
- getException();
- getPage();
- getSession();
- getRequest();
- getResponse();
- getServletConfig();
- getServletContext();
- getException();
- setAttribute(String name,Object attribute);設置屬性及屬性值
- getAttribute(String name);在指定范圍內獲取設置的屬性值
- removeAttribute(String name);刪除屬性
- getAttributeScopt(String name);返回某屬性的作用范圍
- forward(String relativeUrlPath);使當前頁面重定向到另一頁面
- include(String relativeUrlPath);在當前位置引入另一文件
- release();釋放pageContext所占用的資源
2.request
request為一次請求范圍內創建的對象。該對象封裝了請求的各種信息。
- getAttribute(String name);返回指定屬性的值
- setAttribute(String key,Object obj);設置屬性的值
- getAttributeNames();返回所有可用屬性名的枚舉
- getParameterNames();返回可用參數名中的枚舉
- getParameterValues();返回包含參數name的所有值得數組
- setCharacterEncoding();設置字符編碼格式
- getCharacterEncoding();返回字符編碼格式
- getContentType();返回請求體的MIME類型
- getInputStream();返回請求中的二進制流
- getProtocol();返回請求用的協議類型及版本號
- getServerPort();返回服務器接受此請求所用的端口號
3.response
response對象包含了響應客戶請求的有關信息。
- getCharacterEncoding();返回響應用的是何種字符編碼
- getOutputStream();返回響應的一個二進制輸出流
- getWriter();返回一個向客戶端輸出字符的對象
- setContentType(String type);設置響應的MIME類型
- sendRedirect(String location);重定向客戶端請求
4.session
session對象指客戶端與服務端的一次會話,從客戶端連接到服務器開始,知道斷開連接為止。
- setAttribute(String name,Object obj);設置屬性的值
- getAttribute(String name);返回屬性值
- getAttributeNames;返回可用參數名中的枚舉
- getCreationTime();返回session創建時間
- getId();返回session創建的唯一ID號
- getLastAccessedTime();返回此session里客戶端最近一次請求時間
- getMaxInactiveInterval();返回兩次請求間隔多長時間此session被取消(ms)
- getValueNames();返回一個包含此session中所有可用屬性的數組
- invalidate();取消session,使得session不可用
5.application
application作用范圍是於服務器啟動,知道服務器關閉,是一個全局變量,用戶之間可以通過application進行數據共享。
- getAttribute(String name);返回屬性值
- setAttribute(String name,Object obj);設置屬性值
- getAttributeNames();返回所有可用屬性名的枚舉
- removeAttribute(String name);刪除屬性名及對應的屬性值
- getRealPath(String path);返回虛擬路徑的真實路徑
- getContext(String s)返回指定webApplication的application對象
- getMimeType(Stirg file);返回指定文件的MIME類型
- getResource(String path);返回指定資源(文件及目錄)的URL路徑
- getResourceAsStream(String path);返回指定資源的輸入流
- getRequestDispatcher(String s);返回指定資源的requestDispathcer對象
- getServlets();返回所有servlet的枚舉
- getServlet(String name);返回指定名的servlet
- getServletNames();返回所有servlet名的枚舉
6.config
config對象是在一個servlet初始化時,准備一個傳遞信息的對象,此對象中包含了servlet初始化使用的參數以及服務器的有關信息。
7.page
page對象表示當前jsp頁面對象,類似與java中的this指針,指向本身,是一個java.lang.Object類的實例
8.out
out對象是JspWriter類的實例,常用於向客戶端輸出內容。
- write(T val);輸出
- clear();清空out緩沖區
- flush();強制刷新
- clear();關閉輸出流
9.exception
異常處理對象,當頁面運行報錯,就產生了這個對象。如果要在jsp頁面中使用該對象,需要將isErrorPage設置為true
- getMessage();返回描述異常的消息