jsp九大隐藏对象
轉載自? ?jsp九大隱藏對象
jsp內置對象(隱藏對象):不加聲明和創建就可以在jsp頁面腳本中使用的成員對象。
| 內置對象 | 類型 | 作用域 |
| request | javax.servlet.http.HttpServletRequest | request |
| response | javax.servlet.http.HttpServletResponse | response |
| pageContext | javax.servlet.jsp.PageContext | page |
| session | javax.servlet.http.HtpSession | session |
| application | javax.servlet.jsp.ServletContext | application |
| out | javax.servlet.jsp.JspWriter | page |
| config | javax.servlet.ServletConfig | page |
| page | java.lang.Object | page |
| exception | java.lang.Throwable | page |
一、out輸出流對象
Servlet和Jsp中輸出數據都需要使用out對象。Servlet中的out對象是通過response.getWriter( )方法獲取的,Jsp中并沒有定義out對象,可以直接使用,簡單方便。對象out為javax.servlet.jsp.JspWriter類的實例,用來向頁面輸出信息。常用的方法:
| 方法 | 返回值類型 | 方法說明 |
| clear() | void | 清除網頁上輸出內容 |
| clearBuffer() | void | 清除緩沖區內容 |
| close() | void | 關閉緩沖區,清除所有內容 |
| getBufferSize() | int | 取得緩沖區大小 |
| getRemaining() | int | 取得緩沖區剩余大小 |
| isAutoFulsh() | boolean | 獲得緩沖區是否進行自動清除的信息 |
| print(String str) | void | 進行頁面輸出 |
| println(String str) | void | 進行頁面輸出并換行 |
二、request請求對象
對象request為javax.servlet.ServletRequest類的實例,代表客戶端的請求。request對象不但可以用來設置和取得request范圍變量,還可以用來獲取客戶端請求參數、請求的來源、表頭、Cookies等。常用方法:
| ?方法 | 返回值類型? | 方法說明? |
| ?getParameter(String name) | String? | ?獲取參數名為name的參數值 |
| ?getParameterNames() | Enumeration? | ?獲取所有參數的名稱,可與上一個方法合用獲取所有參數的值 |
| ?getParameterValues(String name) | ?String[] | ?獲取參數名為name的所有參數,比如參數是多個checkbox |
| ?getParameterMap() | ?Map | ?獲取所有參數封裝的Map實例,通過Map實例的String[] get("id")方法返回對應參數名為id的值數組 |
| getHeader(String name) | String | 獲取指定標題名稱為name的標頭 |
| getHeaderName() | Enumeration | 獲取所有的標頭名稱 |
| getIntHeader(String name) | int | 獲取標題名稱為name的標頭,內容以整數類型返回 |
| getDateHeader(String name) | long | 獲取標題名稱為name的標頭,內容以日期類型返回 |
| getCookies() | Cookie | 獲取相關的Cookie |
| getContextPath() | String | 獲取Context的路徑 |
| getMethod() | String | 獲取客戶端的提交方式 |
| getProtocol() | String | 獲取使用的HTTP協議 |
| getQueryString() | String | 獲取請求的字符串 |
| getRequestSessionId() | String | 獲取客戶端的Session ID |
| getRequestURI() | String | 獲取請求的URI |
| getRemoteAddr() | String | 獲取客戶端IP地址 |
三、response響應對象
對象response為javax.servlet.ServletResponse類的實例,代表客戶端的響應。服務器端的任何輸出都是通過response對象發送到客戶端瀏覽器。每次服務器端都會響應一個response實例。常用方法:
| 方法 | 返回值 | 方法說明 |
| addCookie(Cookie cookie) | void | ? |
| addDateHeader(String name,long date) | void | ? |
| addHeader(String name,String value) | void | ? |
| addIntHeader(String name,int value) | void | ? |
| setDateHeader(String name,long date) | void | ? |
| setHeader(String name,String value) | void | ? |
| setIntHeader(String name,int value) | void | ? |
| sendError(int sc) | void | 傳送狀態碼 |
| sendError(int sc,String msg) | void | 傳送狀態碼和錯誤信息 |
| setStatus(int sc) | void | 設置狀態碼 |
| sendRedirect(String URL) | void | 頁面重定向,用來實現頁面跳轉 |
四、config配置對象
對象config是javax.servlet.ServletConfig類的實例。ServletConfig封裝了配置在web.xml中初始化Jsp的參數。Jsp中通過config來獲取這些參數。每個Jsp文件有一個config對象。常用方法:
| 方法 | 返回值類型 | 方法說明 |
| getInitParameter(name) | String | 獲取Servlet初始化參數 |
| getInitParameterNames() | Enumeration | 獲取Servlet所有初始化參數名稱 |
| getServletContext() | ServletContext | 獲取當前Application context |
| getServletName() | String | 獲取Servlet名稱 |
五、session會話對象
對象session是javax.servlet.http.HttpSession類的實例。session和cookie是記錄客戶訪問信息的兩種機制,session用于在服務器端保存用戶信息,cookie用于在客戶端保存用戶信息。常用方法:
| 方法 | 返回值類型 | 方法說明 |
| getId() | String | 獲取session的ID |
| getCreationTime() | long | 獲取session的生成時間 |
| getLashAccessedTime() | long | 獲取用戶最后通過session發送請求時間 |
| getMaxInactiveInterval() | long | 獲取session生命周期,如果超過這個時間則失效 |
| invalidate() | void | 清空session內容 |
| isNew() | boolean | 判斷session是否為“新”的 |
| setMaxInactiveInterval() | void | 設置session生命周期,如果超過這個時間則失效 |
| getAttribute() | Object | 獲取session中屬性名為name的對象 |
| getAttributeNames() | Enumeration | 獲取session中的所有屬性名 |
六、application應用程序對象
對象application是javax.servlet.ServletContext類的對象。application封裝了Jsp所在的Web應用程序的信息。Servlet中application對象需要通過ServletConfig.getServletContext()來獲取。整個Web應用程序只有一個application對象。常用方法:
| 方法 | 返回值類型 | 方法說明 |
| getMajorVersion() | int | 獲取主要的Servlet API版本 |
| getMinorVersion() | int | 獲取次要的Servlet API版本 |
| getServerInfo() | String | 獲取服務器版本 |
| getMimeType() | String | 獲取指定文件的MIME類型 |
| getContext() | ServerContext | 獲取指定Local的Application context |
| getRealPath | String | 獲取指定path的絕對路徑 |
七、page頁面對象
對象page是javax.servlet.jsp.HttpJspPage類的實例。page對象代表當前jsp頁面,是當前jsp編譯后的Servlet類的對象。page相當于普通java類的關鍵字this。
八、pageContext頁面上下文對象
對象pageContext是javax.servlet.jsp.PageContext類的實例。pageContext對象代表當前jsp頁面的編譯后的內容。通過次對象可以獲取到jsp中的資源。常用方法:
| 方法 | 返回值 | 方法說明 |
| getException() | Exception | 獲取當前的exception內置對象 |
| getOut() | JspWriter | ? |
| getPage() | Object | ? |
| getRequest() | ServletRequset | ? |
| getResponse() | ServletResponse | ? |
| getServletConfig() | ServletConfig | ? |
| getServeltContext() | ServletContext | ? |
| getSession() | HttpSession | ? |
| getAttribute(String name,int scope) | Object | 獲取指定范圍的name屬性值 |
| getAttributeNamesInScope(int scope) | Enumeration | 獲取指定范圍所有屬性名稱 |
| getAttributesScope(String name) | int | 獲取屬性名稱為name的屬性范圍 |
| removeAttribute(String name) | void | 移除屬性名稱為name的 屬性 |
| removeAttribute(String name,int scope) | void | 移除指定范圍的屬性名稱為name的 屬性 |
| setAttribute(String name,Object value,int scope) | void | 設置指定范圍的name屬性 |
| findAttribute(String name) | Object | 尋找所有范圍的屬性名稱為name的屬性 |
九、exception異常對象
對象exception是java.lang.Exception類的對象。exception封裝了jsp中拋出的異常信息。要使用exception對象,需要設置<%@page?isErrorPage="true" %>。此對象通常被用來處理錯誤頁面。例如:
1、包含錯誤的頁面:error.jsp
<%@ page language="java" contentType="text/html;charset=gb2312" errorPage="ExceptionDemo01.jsp"%> <html> <head> <title>錯誤頁面</title> </head> <body> <% int[] arr = {1,2,3}; out.println(arr[3]); %> </body> </html>?注:error.jsp中arr[3]數組下表越界.需在page指令中指定errorPage的屬性值為相應的異常處理程序。
2、異常處理頁面:exceptionDo.jsp
<%@ page language="java" contentType="text/html;charset=gb2312" isErrorPage="true"%> <%@page import="java.io.PrintStream"%> <html> <head> <title>處理錯誤異常</title> </head> <body> <%=exception%><br><%=exception.getMessage()%><br> <%=exception.getLocalizedMessage()%><br> <% exception.printStackTrace(new java.io.PrintWriter(out)); %> </body> </html>注:必須在page指令中指定屬性isErrorPage屬性值為true。也就是說這個頁面可以用于異常處理。
將會在exceptionDo.jsp中打印出error.jsp中的數組下標越界異常信息。
總結
- 上一篇: 2016电脑配置推荐(2016电脑配置)
- 下一篇: lol电脑需要什么配置(lol配置电脑)