jsp九大隐藏对象
轉(zhuǎn)載自? ?jsp九大隱藏對象
jsp內(nèi)置對象(隱藏對象):不加聲明和創(chuàng)建就可以在jsp頁面腳本中使用的成員對象。
| 內(nèi)置對象 | 類型 | 作用域 |
| 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中輸出數(shù)據(jù)都需要使用out對象。Servlet中的out對象是通過response.getWriter( )方法獲取的,Jsp中并沒有定義out對象,可以直接使用,簡單方便。對象out為javax.servlet.jsp.JspWriter類的實(shí)例,用來向頁面輸出信息。常用的方法:
| 方法 | 返回值類型 | 方法說明 |
| clear() | void | 清除網(wǎng)頁上輸出內(nèi)容 |
| clearBuffer() | void | 清除緩沖區(qū)內(nèi)容 |
| close() | void | 關(guān)閉緩沖區(qū),清除所有內(nèi)容 |
| getBufferSize() | int | 取得緩沖區(qū)大小 |
| getRemaining() | int | 取得緩沖區(qū)剩余大小 |
| isAutoFulsh() | boolean | 獲得緩沖區(qū)是否進(jìn)行自動清除的信息 |
| print(String str) | void | 進(jìn)行頁面輸出 |
| println(String str) | void | 進(jìn)行頁面輸出并換行 |
二、request請求對象
對象request為javax.servlet.ServletRequest類的實(shí)例,代表客戶端的請求。request對象不但可以用來設(shè)置和取得request范圍變量,還可以用來獲取客戶端請求參數(shù)、請求的來源、表頭、Cookies等。常用方法:
| ?方法 | 返回值類型? | 方法說明? |
| ?getParameter(String name) | String? | ?獲取參數(shù)名為name的參數(shù)值 |
| ?getParameterNames() | Enumeration? | ?獲取所有參數(shù)的名稱,可與上一個方法合用獲取所有參數(shù)的值 |
| ?getParameterValues(String name) | ?String[] | ?獲取參數(shù)名為name的所有參數(shù),比如參數(shù)是多個checkbox |
| ?getParameterMap() | ?Map | ?獲取所有參數(shù)封裝的Map實(shí)例,通過Map實(shí)例的String[] get("id")方法返回對應(yīng)參數(shù)名為id的值數(shù)組 |
| getHeader(String name) | String | 獲取指定標(biāo)題名稱為name的標(biāo)頭 |
| getHeaderName() | Enumeration | 獲取所有的標(biāo)頭名稱 |
| getIntHeader(String name) | int | 獲取標(biāo)題名稱為name的標(biāo)頭,內(nèi)容以整數(shù)類型返回 |
| getDateHeader(String name) | long | 獲取標(biāo)題名稱為name的標(biāo)頭,內(nèi)容以日期類型返回 |
| getCookies() | Cookie | 獲取相關(guān)的Cookie |
| getContextPath() | String | 獲取Context的路徑 |
| getMethod() | String | 獲取客戶端的提交方式 |
| getProtocol() | String | 獲取使用的HTTP協(xié)議 |
| getQueryString() | String | 獲取請求的字符串 |
| getRequestSessionId() | String | 獲取客戶端的Session ID |
| getRequestURI() | String | 獲取請求的URI |
| getRemoteAddr() | String | 獲取客戶端IP地址 |
三、response響應(yīng)對象
對象response為javax.servlet.ServletResponse類的實(shí)例,代表客戶端的響應(yīng)。服務(wù)器端的任何輸出都是通過response對象發(fā)送到客戶端瀏覽器。每次服務(wù)器端都會響應(yīng)一個response實(shí)例。常用方法:
| 方法 | 返回值 | 方法說明 |
| 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 | 傳送狀態(tài)碼 |
| sendError(int sc,String msg) | void | 傳送狀態(tài)碼和錯誤信息 |
| setStatus(int sc) | void | 設(shè)置狀態(tài)碼 |
| sendRedirect(String URL) | void | 頁面重定向,用來實(shí)現(xiàn)頁面跳轉(zhuǎn) |
四、config配置對象
對象config是javax.servlet.ServletConfig類的實(shí)例。ServletConfig封裝了配置在web.xml中初始化Jsp的參數(shù)。Jsp中通過config來獲取這些參數(shù)。每個Jsp文件有一個config對象。常用方法:
| 方法 | 返回值類型 | 方法說明 |
| getInitParameter(name) | String | 獲取Servlet初始化參數(shù) |
| getInitParameterNames() | Enumeration | 獲取Servlet所有初始化參數(shù)名稱 |
| getServletContext() | ServletContext | 獲取當(dāng)前Application context |
| getServletName() | String | 獲取Servlet名稱 |
五、session會話對象
對象session是javax.servlet.http.HttpSession類的實(shí)例。session和cookie是記錄客戶訪問信息的兩種機(jī)制,session用于在服務(wù)器端保存用戶信息,cookie用于在客戶端保存用戶信息。常用方法:
| 方法 | 返回值類型 | 方法說明 |
| getId() | String | 獲取session的ID |
| getCreationTime() | long | 獲取session的生成時間 |
| getLashAccessedTime() | long | 獲取用戶最后通過session發(fā)送請求時間 |
| getMaxInactiveInterval() | long | 獲取session生命周期,如果超過這個時間則失效 |
| invalidate() | void | 清空session內(nèi)容 |
| isNew() | boolean | 判斷session是否為“新”的 |
| setMaxInactiveInterval() | void | 設(shè)置session生命周期,如果超過這個時間則失效 |
| getAttribute() | Object | 獲取session中屬性名為name的對象 |
| getAttributeNames() | Enumeration | 獲取session中的所有屬性名 |
六、application應(yīng)用程序?qū)ο?/span>
對象application是javax.servlet.ServletContext類的對象。application封裝了Jsp所在的Web應(yīng)用程序的信息。Servlet中application對象需要通過ServletConfig.getServletContext()來獲取。整個Web應(yīng)用程序只有一個application對象。常用方法:
| 方法 | 返回值類型 | 方法說明 |
| getMajorVersion() | int | 獲取主要的Servlet API版本 |
| getMinorVersion() | int | 獲取次要的Servlet API版本 |
| getServerInfo() | String | 獲取服務(wù)器版本 |
| getMimeType() | String | 獲取指定文件的MIME類型 |
| getContext() | ServerContext | 獲取指定Local的Application context |
| getRealPath | String | 獲取指定path的絕對路徑 |
七、page頁面對象
對象page是javax.servlet.jsp.HttpJspPage類的實(shí)例。page對象代表當(dāng)前jsp頁面,是當(dāng)前jsp編譯后的Servlet類的對象。page相當(dāng)于普通java類的關(guān)鍵字this。
八、pageContext頁面上下文對象
對象pageContext是javax.servlet.jsp.PageContext類的實(shí)例。pageContext對象代表當(dāng)前jsp頁面的編譯后的內(nèi)容。通過次對象可以獲取到j(luò)sp中的資源。常用方法:
| 方法 | 返回值 | 方法說明 |
| getException() | Exception | 獲取當(dāng)前的exception內(nèi)置對象 |
| 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 | 設(shè)置指定范圍的name屬性 |
| findAttribute(String name) | Object | 尋找所有范圍的屬性名稱為name的屬性 |
九、exception異常對象
對象exception是java.lang.Exception類的對象。exception封裝了jsp中拋出的異常信息。要使用exception對象,需要設(shè)置<%@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]數(shù)組下表越界.需在page指令中指定errorPage的屬性值為相應(yīng)的異常處理程序。
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中的數(shù)組下標(biāo)越界異常信息。
總結(jié)
- 上一篇: 2016电脑配置推荐(2016电脑配置)
- 下一篇: <c:set>标签