當前位置:才華齋>計算機>java語言>

JSP中9個隱含物件

java語言 閱讀(9.3K)

Java是一門面向物件程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。下面小編給大家講述的是JSP中九個隱含物件,歡迎閱讀,更多詳情請關注應屆畢業生考試網。

JSP中9個隱含物件

  隱含物件所屬的類說明

reques ServletRequest客戶端的請求資訊

response ServletResponse網頁傳回客戶端的響應

session Session與請求有關的會話

out riter向客戶端瀏覽器輸出資料的資料流

application letContext提供全域性的資料,一旦建立就保持到伺服器關閉

pageContext ContextJSP頁面的上下文,用於訪問頁面屬性

page ct同Java中的this,即JSP頁面本身

config letConfigServlet的配置物件

exception wable針對錯誤網頁,捕捉一般網頁中未捕捉的異常

  一、page 物件

page物件代表JSP物件,更準確地說它代表JSP被轉譯後的Servlet,它可以呼叫Servlet類所定義的方法。

  二、config 物件

config 物件裡存放著一些Servlet 初始的資料結構。

config 物件實現於letConfig 介面,它共有下列四種方法:

public String getInitParameter(name)

public eration getInitParameterNames( )

public ServletContext getServletContext( )

public Sring getServletName( )

  三、request 物件

request 物件包含所有請求的資訊,如:請求的來源、標頭、cookies和請求相關的引數值等等。

request 物件實現ServletRequest介面的,所提供的方法可以將它分為四大類:

  1.儲存和取得屬性方法;

void setAttribute(String name, Object value)設定name屬性的值為value

Enumeration getAttributeNamesInScope(int scope)取得所有scope 範圍的屬性

Object getAttribute(String name)取得name 屬性的值

void removeAttribute(String name)移除name 屬性的值

  2.取得請求引數的方法

String getParameter(String name) 取得name 的引數值Enumeration

getParameterNames( ) 取得所有的引數名稱String[]

getParameterValues(String name) 取得所有name 的引數值

Map getParameterMap( )取得一個要求引數的Map

  3.能夠取得請求HTTP 標頭的方法

String getHeader(String name)取得name 的標頭

Enumeration getHeaderNames()取得所有的標頭名稱

Enumeration getHeaders(String name)取得所有name 的標頭

int getIntHeader(String name)取得整數型別name 的標頭

long getDateHeader(String name) 取得日期型別name 的標頭

Cookie [] getCookies( ) 取得與請求有關的cookies

  4.其他的方法

String getContextPath( )取得Context 路徑(即站臺名稱)

String getMethod( )取得HTTP 的方法(GET、POST)

String getProtocol( )取得使用的協議 HTTP/1.1、HTTP/1.0 )

String getQueryString( )取得請求的引數字串,不過,HTTP的方法必須為GET

String getRequestedSessionId( ) 取得使用者端的Session ID

String getRequestURI( )取得請求的URL,但是不包括請求的引數字串

String getRemoteAddr( )取得使用者的IP 地址

String getRemoteHost( )取得使用者的主機名稱

int getRemotePort( )取得使用者的主機埠

String getRemoteUser( ) 取得使用者的名稱

void etCharacterEncoding(String encoding)設定編碼格式,用來解決窗體傳遞中文的問題

  四、response 物件

response 物件主要將JSP物件 處理資料後的結果傳回到客戶端。

response 物件是實現ServletResponse 介面。response物件所提供的方法。

  1.設定表頭的方法

void addCookie(Cookie cookie)新增cookie

void addDateHeader(String name, long date)新增long型別的值到name標頭

void addHeader(String name, String value)新增String型別的值到name標頭

void addIntHeader(String name, int value)新增int型別的值到name標頭

void setDateHeader(String name, long date)指定long型別的值到name標頭

void setHeader(String name, String value)指定String型別的值到name標頭

void setIntHeader(String name, int value)指定int型別的值到name標頭

  2.設定響應狀態碼的方法

void sendError(int sc)傳送狀態碼(status code)

void sendError(int sc, String msg)傳送狀態碼和錯誤資訊

void setStatus(int sc)設定狀態碼

3.用來URL 重寫(rewriting)的方法

String encodeRedirectURL(String url)對使用sendRedirect( )方法的URL予以編碼

  五、out 物件

out 物件能把結果輸出到網頁上。

out主要是用來控制管理輸出的緩衝區(buffer)和輸出流(output stream)。

void clear( )清除輸出緩衝區的內容

void clearBuffer( )清除輸出緩衝區的內容

void close( )關閉輸出流,清除所有的內容

int getBufferSize( )取得目前緩衝區的大小(KB)

int getRemaining( )取得目前使用後還剩下的緩衝區大小(KB)

boolean isAutoFlush( )回傳true表示緩衝區滿時會自動清除;false表示不會自動清除並且產生異常處理

  六、session 物件

session物件表示目前個別使用者的會話(session)狀況。

session物件實現Session介面,HttpSession介面所提供的方法

long getCreationTime()取得session產生的時間,單位是毫秒

String getId()取得session 的

long getLastAccessedTime()取得使用者最後通過這個session送出請求的時間

long getMaxInactiveInterval()取得最大session不活動的時間,若超過這時間,session 將會失效

void invalidate()取消session 物件,並將物件存放的內容完全拋棄

boolean isNew()判斷session 是否為"新"的

void setMaxInactiveInterval(int interval)設定最大session不活動的時間,若超過這時間,session 將會失效

  七、application物件

application物件最常被使用在存取環境的資訊。

因為環境的資訊通常都儲存在ServletContext中,所以常利用application物件來存取ServletContext中的資訊。

application 物件實現letContext 介面,ServletContext介面容器所提供的方法

int getMajorVersion( )取得Container主要的Servlet API版本

int getMinorVersion( )取得Container次要的Servlet API 版本

String getServerInfo( )取得Container的名稱和版本

String getMimeType(String file)取得指定檔案的MIME 型別

ServletContext getContext(String uripath)取得指定Local URL的Application context

String getRealPath(String path)取得本地端path的絕對路徑

void log(String message)將資訊寫入log檔案中

void log(String message, Throwable throwable)將stack trace 所產生的異常資訊寫入log檔案中

  八、pageContext物件

pageContext物件能夠存取其他隱含物件。

Context物件存取其他隱含物件屬性的方法,此時需要指定範圍的引數。

Object getAttribute(String name, int scope)

Enumeration getAttributeNamesInScope(int scope)

void removeAttribute(String name, int scope)

void setAttribute(String name, Object value, int scope)

範圍引數有四個,分別代表四種範圍:PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE

Context物件取得其他隱含物件的方法

Exception getException( )回傳目前網頁的異常,不過此網頁要為error page,

JspWriter getOut( )回傳目前網頁的輸出流,例如:out

Object getPage( )回傳目前網頁的Servlet 實體(instance),例如:page

ServletRequest getRequest( )回傳目前網頁的請求,例如:request

ServletResponse getResponse( )回傳目前網頁的響應,例如:response

ServletConfig getServletConfig( )回傳目前此網頁的ServletConfig 物件,例如:config

ServletContext getServletContext( ) 回傳目前此網頁的執行環境(context),例如:application

HttpSession getSession( )回傳和目前網頁有聯絡的會話(session),例如:session

Context物件提供取得屬性的方法

Object getAttribute(String name, int scope)回傳name 屬性,範圍為scope的屬性物件,回傳型別為Object

Enumeration getAttributeNamesInScope(int scope)回傳所有屬性範圍為scope 的屬性名稱,回傳型別為Enumeration

int getAttributesScope(String name)回傳屬性名稱為name 的屬性範圍

void removeAttribute(String name)移除屬性名稱為name 的屬性物件

void removeAttribute(String name, int scope)移除屬性名稱為name,範圍為scope 的屬性物件

void setAttribute(String name, Object value, int scope)指定屬性物件的名稱為name、值為value、範圍為scope

Object findAttribute(String name)尋找在所有範圍中屬性名稱為name 的屬性物件

  九、exception物件

若要使用exception 物件時,必須在page 指令中設定。才能使用。

exception提供的三個方法:

getMessage( )

getLocalizedMessage( )、

printStackTrace(new tWriter(out))