JSP一共有9個內置對象:request、response、session、application、out、pagecontext、config、page、exception。
-
request對象。
resquest對象是javax.servlet.http.HttpServletRequest類的一個實例。客戶端的請求信息封裝在resquest中發送給服務器端。request的作用域是一次請求。
請求方式:request.getMethod()
請求的資源:request.getRequestURI()
請求用的協議:request.getProtocol()
請求的文件名:request.getServletPath()
請求的服務器的IP:request.getServerName()
請求服務器的端口:request.getServerPort()
客戶端IP地址:request.getRemoteAddr()
客戶端主機名:request.getRemoteHost()
-
response對象。
response對象是javax.servlet.http.HttpServletResponse的一個實例。服務端 的相應信息封裝在response中返回。
重定向客戶端請求 response.sendRedirect(index.jsp)
-
session對象。
session對象是javax.servlet.http.HttpSession的一個實例。在第一個JSP頁面被裝載時自動創建,完成會話期管理。
session對象內部使用Map類來保存數據,因此保存數據的格式為 “Key/value”。
獲取Session對象編號 session.getId()
添加obj到Session對象 session.setAttribute(String key,Object obj)
獲取Session值 session.getAttribute(String key)
-
application對象。
application對象是javax.servlet.ServletContext的一個實例。
實現了用戶間數據的共享,可存放全局變量。它開始於服務器的啟動,直到服務器的關閉,在此期間,此對象將一直存在。
添加obj到Application對象 application.setAttribute(String key,Object obj)
獲取Application對象中的值 application.getAttribute(String key)
-
out 對象。
out對象是javax.servlet.jsp.jspWriter的一個實例。用於瀏覽器輸出數據。
輸出各種類型數據 out.print()
輸出一個換行符 out.newLine()
關閉流 out.close()
-
pageContext 對象。
pageContext 對象是javax.servlet.jsp.PageContext的一個對象。作用是取得任何范圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。
-
config 對象。
config 對象是javax.servlet.ServletConfig的一個對象。主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。
-
cookie 對象。
cookie 對象是Web服務器保存在用戶硬盤上的一段文本。唯一的記錄了用戶的訪問信息。
將Cookie對象傳送到客戶端 Cookie c = new Cookie(username",john");
讀取保存到客戶端的Cookie response.addCookie(c)
-
exception 對象。
exception 對象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中才可以被使用。
頁面一(page1.jsp)主要代碼:
<%@ page errorPage="/page2.jsp" %> <% int a = 10; int b = 0; int c = a / b; // 拋出異常 %>
頁面二(page2.jsp)主要代碼:
<%@ page isErrorPage="true" %>
<!-- 輸出異常信息 --> <%=exception.toString() %>
在頁面一中,指定page編譯指令erroePage屬性值為page2.jsp,當除以0時,會拋出異常,頁面繼而forward到頁面二進行異常處理。