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 對象。