程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 第四課 - JSP-九大內置對象的詳解

第四課 - JSP-九大內置對象的詳解

編輯:關於JSP

 

 

第四課 - JSP-九大內置對象的詳解


一丨基本知識

1、request對象

 

該對象封裝了用戶提交的信息,通過調用該對象相應的方法可以獲取封裝的信息,即使用該對象可以
獲取用戶提交的信息。
當Request對象獲取客戶提交的漢字字符時,會出現亂碼問題,必須進行特殊處理。首先,將獲取的
字符串用ISO-8859-1進行編碼,並將編碼存發到一個字節數組中,然後再將這個數組轉化為字符串對象
即可。如下:

 

String textContent=new String(request.getParameter(boy).getBytes(ISO-8859-1),GBK);

 

Request常用的方法:

 

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

 

 

 

String strName=request.getParameter(name);
1.02 getProtocol() 獲取客戶使用的協議。

 

 

 

 

String strProtocol=request.getProtocol();
1.03 getServletPath() 獲取客戶提交信息的頁面。

 

 

 

 

String strServlet=request.getServletPath();
1.04 getMethod() 獲取客戶提交信息的方式,get|post。

 

 

String strMethod = request.getMethod();

 

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

 

 

 

String strHeader = request.getHeader(accept);
1.06 getRermoteAddr() 獲取客戶的IP地址。

 

 

 

 

String strIP = request.getRemoteAddr();
1.07 getRemoteHost() 獲取客戶機的名稱。

 

 

 

 

String clientName = request.getRemoteHost();
1.08 getServerName() 獲取服務器名稱。

 

 

 

 

String serverName = request.getServerName();
1.09 getServerPort() 獲取服務器的端口號。

 

 

 

 

int serverPort = request.getServerPort();
1.10 getParameterNames() 獲取客戶端提交的所有參數的名字。

 

 

Enumerationenum=request.getParameterNames();
while(enum.hasMoreElements()){
    String s=(String)enum.nextElement();
    out.println(s);
}

2、response對象

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

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

 

response.setContentType(String s);
//參數s可取text/html,application/x-msexcel,application/msword等。
2.2 Response重定向
在某些情況下,當響應客戶時,需要將客戶重新引導至另一個頁面,可以使用Response的sendRedirect(URL)方法實現客戶的重定向。

 

 

response.sendRedirect(index.jsp);

 

 

3、session對象

session 對象是由服務器自動創建的與用戶請求相關的對象。服務器為每個用戶都生成一個session對象,用於保存該用戶的信息,跟蹤用戶的操作狀態。session對象內部使用Map類來保存數據,因此保存數據的格式為 “Key/value”。 session對象的value可以使復雜的對象類型,而不僅僅局限於字符串類型。

(1)什麼是Session對象
Session對象是一個JSP內置對象,它在第一個JSP頁面被裝載時自動創建,完成會話期管理。從一個客戶打開浏覽器並連接到服務器開始,到客戶關閉浏覽器離開這個服務器結束,被稱為一個會話。當一個客戶訪問一個服務器時,可能會在這個服務器的幾個頁面之間切換,服務器應當通過某種辦法知道這是一個客戶,就需要Session對象。
(2)Session對象的ID
當一個客戶首次訪問服務器上的一個JSP頁面時,JSP引擎產生一個Session對象,同時分配一個String類型的ID號,JSP引擎同時將這換個ID號發送到客戶端,存放在Cookie中,這樣Session對象,直到客戶關閉浏覽器後,服務器端該客戶的Session對象才取消,並且和客戶的會話對應關系消失。當客戶重新打開浏覽器再連接到該服務器時,服務器為該客戶再創建一個新的Session對象。
(3)Session對象的常用方法

 

public String getId()
//獲取Session對象編號。
public void setAttribute(String key,Object obj)
//將參數Object指定的對象obj添加到Session對象中,並為添加的對象指定一個索引關鍵字。
public Object getAttribute(String key)
//獲取Session對象中含有關鍵字的對象。
public Boolean isNew()
//判斷是否是一個新的客戶。


 

4、application對象

application 對象可將信息保存在服務器中,直到服務器關閉,否則application對象中保存的信息會在整個應用中都有效。與session對象相比,application對象生命周期更長,類似於系統的“全局變量”。

(1)什麼是Application對象
服務器啟動後就產生了這個Application對象,當客戶再所訪問的網站的各個頁面之間浏覽時,這個Application對象都是同一個,直到服務器關閉。但是與Session對象不同的時,所有客戶的Application對象都是同一個,即所有客戶共享這個內置的Application對象。
(2)Application對象的常用方法

setAttribute(String key,Object obj)
//將參數Object指定的對象obj添加到Application對象中,並為添加的對象指定一個索引關鍵字。
getAttribute(String key)
//獲取Application對象中含有關鍵字的對象。

 

5、out 對象

out 對象用於在Web浏覽器內輸出信息,並且管理應用服務器上的輸出緩沖區。在使用 out 對象輸出數據時,可以對數據緩沖區進行操作,及時清除緩沖區中的殘余數據,為其他的輸出讓出緩沖空間。待數據輸出完畢後,要及時關閉輸出流。

 

out.print()
//輸出各種類型數據。
out.newLine()
//輸出一個換行符。
out.close()
//關閉流。

 

6、pageContext 對象

pageContext 對象的作用是取得任何范圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。

 

pageContext對象提供了對JSP頁面內所有的對象及名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當於頁面中所有功能的集大成者,它的本類名也叫pageContext。 pageContext 對象直譯時可以稱作“頁面上下文”對象,代表的是當前頁面運行的一些屬性,常用的方法有 :findAttribute、getAttribute、getAttributesScope 和getAttributeNamesInScope
一般情況下pageContext對象用到得也不是很多,只有在項目所面臨的情況比較復雜的情況下,才會利用到頁面屬性來輔助處理。
pageContext表示一個javax.servlet.jsp.PageContext對象。它是用於方便存取各種范圍的名字空間、servlet相關的對象的API,並且包裝了通用的servlet相關功能的方法。

 

forward(String UriPath) 
//重定向
getAttribute(String name,[int scope] )
//scope可選。用來檢索一個特定的已經 命名的對象的范圍,並且還可以通過調用 getAttributeNamesInScope()方法 ,檢索對鞭個特定范圍的每個屬性String字符串名稱的枚舉。
getException()
//返回當前的exception對象
getRequest()
//返回當前的request對象
getResponse()
//返回當前的response對象
getServletConfig()
//返回當前頁面的ServletConfig對象
getServletContext()
//返回ServletContext對象。這個對象對所有頁面都是共享的
getSession() 
//返回當前的session對象
findAttribute() 
//可以用來按照頁面,請求,會話以及應用程序范圍順序實現對某個已經命名的屬性的搜索。
setAttribute() 
//可以用來設置默認頁面范圍或特定范圍之中的已命名對象。removeAttribute()可以用來刪除默認范圍或特定范圍內的已命名對象

 


7、config 對象

config 對象的主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中為應用程序環境中的Servlet程序和JSP頁面提供初始化參數。

常用的方法有getInitParameter和getInitParameterNames,以獲得Servlet初始化時的參數。

8、page 對象

page 對象代表JSP本身,只有在JSP頁面內才是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似於Java編程中的 this 指針。通過它可以訪問頁面的許多屬性。如out,request,response等等。

9、exception 對象

exception 對象的作用是顯示異常信息,只有在包含 isErrorPage=true 的頁面中才可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。excepation對象和Java的所有對象一樣,都具有系統提供的繼承結構。exception 對象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 對象,並把 exception 對象傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 對象。












轉載請注明出處:blog.csdn.net/qsuron 小樹博客 博主小樹 (qsuron)




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved