JSP九大內置對象(隱式對象)和四大作用域

jsp九大內置對象:    對應servlet中的java對象
page             this					作用域:page
pageContext      PageContext			作用域:page
request          HttpServletRequest		作用域:request
response         HttpServletResponse	作用域:page
config           ServletConfig			作用域:page
exception        Throwable				作用域:page
out              JspWriter				作用域:page
session          HttpSession			作用域:session
application      ServletContext			作用域:application

一、Request對象

該對象封裝了用戶提交的信息,通過調用該對象相應的方法可以獲取封裝的信息,即使用該對象可以獲取用戶提交的信息。

當Request對象獲取客戶提交的漢字字符時,會出現亂碼問題,必須進行特殊處理。首先,將獲取的字符串用ISO-8859-1進行編碼,並將編碼存發島一個字節數組中,然後再將這個數組轉化爲字符串對象即可。如下:

String textContent=request.getParameter("boy");

byte b[]=textContent.getBytes("ISO-8859-1");

textContent=new String(b);

 

Request常用的方法:

1. getParameter(String strTextName)獲取表單提交的信息。

String strName=request.getParameter("name");

2. getProtocol() 獲取客戶使用的協議。

String strProtocol=request.getProtocol();

3. getServletPath() 獲取客戶提交信息的頁面。

String strServlet=request.getServletPath();

4. getMethod()獲取客戶提交信息的方式,get|post。

String strMethod =request.getMethod();

5. getHeade()獲取HTTP頭文件中的accept、accept-encoding和Host的值。

String strHeader =request.getHeader("accept");

6. getRermoteAddr() 獲取客戶的IP地址。

String strIP =request.getRemoteAddr();

7. getRemoteHost() 獲取客戶機的名稱。

String clientName =request.getRemoteHost();

8. getServerName() 獲取服務器名稱。

String serverName =request.getServerName();

9. getServerPort() 獲取服務器的端口號。

int serverPort =request.getServerPort();

10. getParameterNames()獲取客戶端提交的所有參數的名字。

Enumeration enum =request.getParameterNames();

while(enum.hasMoreElements()){

String s=(String)enum.nextElement();

out.println(s);

}

 

二、Response對象

對客戶的請求做出動態的響應,向客戶端發送數據。

1. 動態響應contentType屬性

當一個用戶訪問一個JSP頁面時,如果該頁面用page指令設置頁面的contentType屬性時text/html,那麼JSP引擎將按照這個屬性值做出反應。如果要動態改變這換個屬性值來響應客戶,就需要使用Response對象的setContentType(Strings)方法來改變contentType的屬性值。

格式:response.setContentType(Strings);

參數s可取text/html,application/x-msexcel,application/msword等。

2. Response重定向

在某些情況下,當響應客戶時,需要將客戶重新引導至另一個頁面,可以使用Response的sendRedirect(URL)方法實現客戶的重定向。例:response.sendRedirect("index.jsp");

 

Response常用的方法:

1. String getCharacterEncoding()返回響應用的是何種字符編碼

2. ServletOutputStreamgetOutputStream() 返回響應的一個二進制輸出流

3. PrintWriter getWriter()返回可以向客戶端輸出字符的一個對象

4. void setContentLength(int len)設置響應頭長度

5. void setContentType(String type)設置響應的MIME類型

6. sendRedirect(java.lang.Stringlocation) 重新定向客戶端的請求

 

三、Out對象

Out對象用來向客戶端輸出數據。Out對象用於各種數據的輸出。

 

Out常用方法:

1. out.print():          輸出各種類型數據。

2. out.newLine():   輸出一個換行符。

3. out.close():        關閉流。

 

四、Session對象

1. 什麼是Session對象

Session對象是一個JSP內置對象,它在第一個JSP頁面被裝載時自動創建,完成會話期管理。從一個客戶打開瀏覽器並連接到服務器開始,到客戶關閉瀏覽器離開這個服務器結束,被稱爲一個會話。當一個客戶訪問一個服務器時,可能會在這個服務器的幾個頁面之間切換,服務器應當通過某種辦法知道這是一個客戶,就需要Session對象。

2. Session對象的ID

當一個客戶首次訪問服務器上的一個JSP頁面時,JSP引擎產生一個Session對象,同時分配一個String類型的ID號,JSP引擎同時將這換個ID號發送到客戶端,存放在Cookie中,這樣Session對象,直到客戶關閉瀏覽器後,服務器端該客戶的Session對象才取消,並且和客戶的會話對應關係消失。當客戶重新打開瀏覽器再連接到該服務器時,服務器爲該客戶再創建一個新的Session對象。

 

Session對象的常用方法:

1. public StringgetId():獲取Session對象編號。

2. public void setAttribute(Stringkey,Objectobj):將參數Object指定的對象obj添加到Session對象中,併爲添加的對象指定一個索引關鍵字。

3. public Object getAttribute(Stringkey):獲取Session對象中含有關鍵字的對象。

4. public BooleanisNew():判斷是否是一個新的客戶。

 

五、Application對象

1. 什麼時Application對象

服務器啓動後就產生了這個Application對象,當客戶再所訪問的網站的各個頁面之間瀏覽時,這個Application對象都時同一個,直到服務器關閉。但是與Session對象不同的時,所有客戶的Application對象都時同一個,即所有客戶共享這個內置的Application對象。

 

Application對象的常用方法

1.setAttribute(String key,Objectobj):將參數Object指定的對象obj添加到Application對象中,併爲添加的對象指定一個索引關鍵字。

2.getAttribute(Stringkey):獲取Application對象中含有關鍵字的對象。

 

六、Config對象(配置對象)

config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(通過屬性名和屬性值構成)以及服務器的有關信息(通過傳遞一個ServletContext對象)

 

Config對象的常用方法:

1.      ServletContext getServletContext() 返回含有服務器相關信息的ServletContext對象

2.      String getInitParameter(String name) 返回初始化參數的值

3.      Enumeration getInitParameterNames() 返回Servlet初始化所需所有參數的枚舉

 

七、Page對象(頁面對象)

page對象就是指向當前JSP頁面本身,有點象類中的this指針,它是java.lang.Object類的實例

 

Page對象的常用方法:

1. class getClass  返回此Object的類

2. int hashCode()  返回此Object的hash碼

3. boolean equals(Object obj) 判斷此Object是否與指定的Object對象相等

4. void copy(Object obj) 把此Object拷貝到指定的Object對象中

5. Object clone() 克隆此Object對象

6. String toString() 把此Object對象轉換成String類的對象

7. void notify() 喚醒一個等待的線程

8. void notifyAll() 喚醒所有等待的線程

9. void wait(int timeout) 使一個線程處於等待直到timeout結束或被喚醒

10. void wait() 使一個線程處於等待直到被喚醒

 

八、PageContext對象:頁面上下文對象

Jsp引入了一個名位PageContext的類,通過它可以訪問頁面的許多屬性。

PageContext類擁有getRequest,getResponse,getOut,getSession等方法。

pageContext變量存儲與當前頁面相關聯的PageContext對象的值。

補:

如果方法需要訪問多個與頁面相關的對象,

傳遞pageContext要比傳遞request,response,out等的獨立引用更容易。(雖然兩種方式都能達到同樣的目的)

 

pageContext對象的常用方法:

1. JspWriter getOut() 返回當前客戶端響應被使用的JspWriter流(out)

2. HttpSessiongetSession()  返回當前頁中的HttpSession對象(session)

3. Object getPage() 返回當前頁的Object對象(page)

4.ServletRequestgetRequest()  返回當前頁的ServletRequest對象(request)

5.ServletResponsegetResponse() 返回當前頁的ServletResponse對象(response)

6. ExceptiongetException()  返回當前頁的Exception對象(exception)

7. ServletConfiggetServletConfig() 返回當前頁的ServletConfig對象(config)

8. ServletContextgetServletContext() 返回當前頁的ServletContext對象(application)

9. void setAttribute(String name,Objectattribute)  設置屬性及屬性值

10. void setAttribute(Stringname,Object obj,int scope)  在指定範圍內設置屬性及屬性值

 

九、Exception對象

在處理異常的網頁中可以直接訪問exception隱式對象。

exception對象是一個例外對象,當一個頁面在運行過程中發生了例外,就產生這個對象。如果一個JSP頁面要應用此對象,就必須把isErrorPage設爲true,否則無法編譯。他實際上是java.lang.Throwable的對象

 

Exception對象的常用方法:

1. StringgetMessage()  返回描述異常的消息

2. String toString() 返回關於異常的簡短描述消息

3. voidprintStackTrace()  顯示異常及其棧軌跡

4. ThrowableFillInStackTrace()  重寫異常的執行棧軌跡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章