JSP的內建對象不需要由JSP編寫人員實例化,它們均由容器管理和實現,在所有的JSP頁面中都能使用.只在Scriptlet或者表達式中使用.它們是:
1.request對象:
代表請求對象,被包裝成HttpServletRequest接口,通過getParameter方法得到request參數,通過 GET,POST,HEAD等方法得到request的類型.通過Cookies,Referer等可以得到Http頭.來自客戶端的請求經 Servlet容器處理后,由request對象進行封裝,作為jspService()方法的一個參數由容器傳遞給JSP頁面.主要方法有:request.getAttribute("..");request.getParameter("xxx");request.getParameterValues("xxx");request.getHeader("xxx") 獲取HTTP協議定義的文件頭信息.request.getRequestURI()獲取發出請求字符串的客戶端地址.request.getRemoteHost()客戶端名,request.getRemoteAddr()客戶端IP地址.request.getServerName()服務器名字.request.getServletPath();客戶端所請求的腳本文件的文件路徑.request.getServerPort()獲取
2.response 響應請求對象,被包裝成HttpServletResponse接口,與requst對象一樣,是緩沖輸出流,可以設置Http狀態碼和response 響應頭.主要的方法有:response.addCookie(Cookie cookie);response.encodeURL();response.getOutputStream();response.sendRedirect("xxx") 把響應發到另一位置進行處理. 3.pageContext 被封裝成javax.servlet.jsp.pageContext接口,它為JSP頁面包裝頁面的上下文.由容器創建和初始化,管理對屬于JSP中特殊可見部分中已命名對象的訪問.可用getServletContext()返回Servlet Context對象(這個Servlet Context對所有的頁面都是共享的.),forward("xxx")把頁面重定向到另一頁面或者Servlet組件上. 4.session對象 用來保存每個用戶信息,以便跟蹤每個用戶的操作狀態.其中session信息保存在容器中,session的ID保存在客戶機的Cookiek .(一般情況中,用戶每次登錄系統時容器會給此用戶分配一個唯一的標識session id,用于區別其它用戶,當用戶退出系統時,這個標識就會自動消失.其接口為HttpSession.主要的方法有:session.getId();getLastAccessedTime();setAttribute(); 5.application 與服務器啟動后創建.直到服務器關閉而停止,為多個應用程序保存信息. 6.out對象: 被封裝成javax.servlet.jsp.JspWriter接口,它表示為客戶打開的輸出流,PrintWriter使用它向客戶端發送輸出流.即簡單說向客戶端輸出數據.方法:out.print(....),out.newLine();out.flush();out.close();等,并可獲取輸出緩沖區的相關信息.如果要在頁面中真正輸出一個空行,需要用out.println("<br>")來實現. 7.config 被封裝為javax.servlet.ServletConfig接口,它表示了Servlet的配置.當一個Servlet初始化時,容器把某些信息通過 此對象傳遞給這個Servlet.,常用的方法有:getServletContext(); 8.page 是java.lang.Object類的一個實例,它指的是JSP實現類的實例. 9.exception 是java.lang.Throwable類的一個實例,它指的是運行時的異常,也就是被調用的錯誤頁面的結果,只有在錯誤頁面(在指令里有isErrorPage=true的頁面中)才可以使用