教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java培訓(xùn)之JSP作用于用法

更新時(shí)間:2016年09月29日15時(shí)33分 來源:傳智播客Java培訓(xùn) 瀏覽次數(shù):

JSP九大內(nèi)置對(duì)象的作用和用法總結(jié)?
 JSP中一共預(yù)先定義了9個(gè)這樣的對(duì)象,分別為:request、response、session、application、out、pagecontext、config、page、exception

1、request對(duì)象javax.servlet.http.HttpServletRequest

request對(duì)象代表了客戶端的請(qǐng)求信息,主要用于接受通過HTTP協(xié)議傳送到服務(wù)器的數(shù)據(jù)。(包括頭信息、系統(tǒng)信息、請(qǐng)求方式以及請(qǐng)求參數(shù)等)。request對(duì) 象的作用域?yàn)橐淮握?qǐng)求。

當(dāng)Request對(duì)象獲取客戶提交的漢字字符時(shí),會(huì)出現(xiàn)亂碼問題,必須進(jìn)行特殊處理。首先,將獲取的字符串用ISO-8859-1進(jìn)行編碼,并將編碼存發(fā)島一個(gè)字節(jié)數(shù)組中,然后再將這個(gè)數(shù)組轉(zhuǎn)化為字符串對(duì)象如下

Request常用的方法:getParameter(String strTextName) 獲取表單提交的信息.

getProtocol() 獲取客戶使用的協(xié)議。

String strProtocol=request.getProtocol();

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

getMethod() 獲取客戶提交信息的方式 String strMethod=request.getMethod();

getHeader() 獲取HTTP頭文件中的accept,accept-encoding和Host的值,String strHeader=request.getHeader();

getRermoteAddr() 獲取客戶的IP地址。String strIP=request.getRemoteAddr();

getRemoteHost() 獲取客戶機(jī)的名稱。String clientName=request.getRemoteHost();

getServerName() 獲取服務(wù)器名稱。 String serverName=request.getServerName();

getServerPort() 獲取服務(wù)器的端口號(hào)。 int serverPort=request.getServerPort();

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

[html] view plain copy
  1. Enumeration enum = request.getParameterNames();  
  2. while(enum.hasMoreElements())  
  3. {  
  4.     Strings(String)enum.nextElement();  
  5.     out.println(s);  
  6. }  

2、response對(duì)象 javax.servlet.http.HttpServletResponse

response 代表的是對(duì)客戶端的響應(yīng),主要是將JSP容器處理過的對(duì)象傳回到客戶端。response對(duì)象也具有作用域,它只在JSP頁面內(nèi)有效。

具有動(dòng)態(tài)響應(yīng)contentType屬性,當(dāng)一個(gè)用戶訪問一個(gè)JSP頁面時(shí),如果該頁面用page指令設(shè)置頁面的contentType屬性是text/html,那么JSP引擎將按照這個(gè)屬性值做出反應(yīng)。

如果要?jiǎng)討B(tài)改變這換個(gè)屬性值來響應(yīng)客戶,就需要使用Response對(duì)象的setContentType(String s)方法來改變contentType的屬性值。

response.setContentType(String s);  參數(shù)s可取text/html,application/x-msexcel,application/msword等。

在某些情況下,當(dāng)響應(yīng)客戶時(shí),需要將客戶重新引導(dǎo)至另一個(gè)頁面,可以使用Response的sendRedirect(URL)方法實(shí)現(xiàn)客戶的重定向。

例如response.sendRedirect(index.jsp);

3、session對(duì)象 javax.servlet.http.HttpSession

Session對(duì)象是一個(gè)JSP內(nèi)置對(duì)象,它在第一個(gè)JSP頁面被裝載時(shí)自動(dòng)創(chuàng)建,完成會(huì)話期管理。從一個(gè)客戶打開瀏覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開這個(gè)服務(wù)器結(jié)束,被稱為一個(gè)會(huì)話。當(dāng)一個(gè)客戶訪問一個(gè)服務(wù)器時(shí),可能會(huì)在這個(gè)服務(wù)器的幾個(gè)頁面之間切換,服務(wù)器應(yīng)當(dāng)通過某種辦法知道這是一個(gè)客戶,就需要Session對(duì)象。

當(dāng)一個(gè)客戶首次訪問服務(wù)器上的一個(gè)JSP頁面時(shí),JSP引擎產(chǎn)生一個(gè)Session對(duì)象,同時(shí)分配一個(gè)String類型的ID號(hào),JSP引擎同時(shí)將這換個(gè)ID號(hào)發(fā)送到客戶端,存放在Cookie中,這樣Session對(duì)象,直到客戶關(guān)閉瀏覽器后,服務(wù)器端該客戶的Session對(duì)象才取消,并且和客戶的會(huì)話對(duì)應(yīng)關(guān)系消失。當(dāng)客戶重新打開瀏覽器再連接到該服務(wù)器時(shí),服務(wù)器為該客戶再創(chuàng)建一個(gè)新的Session對(duì)象。

session 對(duì)象是由服務(wù)器自動(dòng)創(chuàng)建的與用戶請(qǐng)求相關(guān)的對(duì)象。服務(wù)器為每個(gè)用戶都生成一個(gè)session對(duì)象,用于保存該用戶的信息,跟蹤用戶的操作狀態(tài)。

 session對(duì)象內(nèi)部使用Map類來保存數(shù)據(jù),因此保存數(shù)據(jù)的格式為 “Key/value”。 session對(duì)象的value可以使復(fù)雜的對(duì)象類型,而不僅僅局限于字符串類型。

public String getId():獲取Session對(duì)象編號(hào)。

public void setAttribute(String key,Object obj):將參數(shù)Object指定的對(duì)象obj添加到Session對(duì)象中,并為添加的對(duì)象指定一個(gè)索引關(guān)鍵字。

public Object getAttribute(String key):獲取Session對(duì)象中含有關(guān)鍵字的對(duì)象。

public Boolean isNew():判斷是否是一個(gè)新的客戶。

4、application對(duì)象javax.servlet.ServletContext

application 對(duì)象可將信息保存在服務(wù)器中,直到服務(wù)器關(guān)閉,否則application對(duì)象中保存的信息會(huì)在整個(gè)應(yīng)用中都有效。與session對(duì)象相比,application對(duì)象生命周期更長,類似于系統(tǒng)的“全局變量”。

服務(wù)器啟動(dòng)后就產(chǎn)生了這個(gè)Application對(duì)象,當(dāng)客戶再所訪問的網(wǎng)站的各個(gè)頁面之間瀏覽時(shí),這個(gè)Application對(duì)象都是同一個(gè),直到服務(wù)器關(guān)閉。但是與Session對(duì)象不同的時(shí),所有客戶的Application對(duì)象都時(shí)同一個(gè),即所有客戶共享這個(gè)內(nèi)置的Application對(duì)象。

setAttribute(String key,Object obj):將參數(shù)Object指定的對(duì)象obj添加到Application對(duì)象中,并為添加的對(duì)象指定一個(gè)索引關(guān)鍵字。

getAttribute(String key):獲取Application對(duì)象中含有關(guān)鍵字的對(duì)象。

5、out 對(duì)象javax.servlet.jsp.jspWriter

out 對(duì)象用于在Web瀏覽器內(nèi)輸出信息,并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。在使用 out 對(duì)象輸出數(shù)據(jù)時(shí),可以對(duì)數(shù)據(jù)緩沖區(qū)進(jìn)行操作,及時(shí)清除緩沖區(qū)中的殘余數(shù)據(jù),為其他的輸出讓出緩沖空間。待數(shù)據(jù)輸出完畢后,要及時(shí)關(guān)閉輸出流。

Out對(duì)象時(shí)一個(gè)輸出流,用來向客戶端輸出數(shù)據(jù)。Out對(duì)象用于各種數(shù)據(jù)的輸出。其常用方法如下。

out.print():輸出各種類型數(shù)據(jù)。

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

 out.close():關(guān)閉流。

6、pageContext 對(duì)象javax.servlet.jsp.PageContext

pageContext 對(duì)象的作用是取得任何范圍的參數(shù),通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對(duì)象。

pageContext對(duì)象的創(chuàng)建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對(duì)象。

page 對(duì)象代表JSP本身,只有在JSP頁面內(nèi)才是合法的。 page隱含對(duì)象本質(zhì)上包含當(dāng)前 Servlet接口引用的變量,類似于Java編程中的 this 指針。

7、config 對(duì)象javax.servlet.ServletConfig

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

8 cookie 對(duì)象

Cookie是Web服務(wù)器保存在用戶硬盤上的一段文本。Cookie允許一個(gè)Web站點(diǎn)在用戶電腦上保存信息并且隨后再取回它。舉例來說,一個(gè)Web站點(diǎn)可能會(huì)為每一個(gè)訪問者產(chǎn)生一個(gè)唯一的ID,然后以Cookie文件的形式保存在每個(gè)用戶的機(jī)器上。

創(chuàng)建一個(gè)Cookie對(duì)象 調(diào)用Cookie對(duì)象的構(gòu)造函數(shù)就可以創(chuàng)建Cookie對(duì)象。Cookie對(duì)象的構(gòu)造函數(shù)有兩個(gè)字符串參數(shù):Cookie名字和Cookie值。 

例如:Cookie c = new Cookie(username",john"); 將Cookie對(duì)象傳送到客戶端。

JSP中,如果要將封裝好的Cookie對(duì)象傳送到客戶端,可使用Response對(duì)象的addCookie()方法。 

例如:response.addCookie(c),讀取保存到客戶端的Cookie。

 使用Request對(duì)象的getCookie()方法,執(zhí)行時(shí)將所有客戶端傳來的Cookie對(duì)象以數(shù)組的形式排列,如果要取出符合需要的Cookie對(duì)象,就需要循環(huán)比較數(shù)組內(nèi)每個(gè)對(duì)象的關(guān)鍵字。設(shè)置Cookie對(duì)象的有效時(shí)間,用Cookie對(duì)象的setMaxAge()方法便可以設(shè)置Cookie對(duì)象的有效時(shí)間,

例如:Cookie c = newCookie(username","john");c.setMaxAge(3600);

Cookie對(duì)象的典型應(yīng)用時(shí)用來統(tǒng)計(jì)網(wǎng)站的訪問人數(shù)。由于代理服務(wù)器、緩存等的使用,唯一能幫助網(wǎng)站精確統(tǒng)計(jì)來訪人數(shù)的方法就是為每個(gè)訪問者建立一個(gè)唯一ID。使用Cookie,網(wǎng)站可以完成以下工作:

 測(cè)定多少人訪問過。測(cè)定訪問者有多少是新用戶(即第一次來訪),多少是老用戶。

測(cè)定一個(gè)用戶多久訪問一次網(wǎng)站。當(dāng)一個(gè)用戶第一次訪問時(shí),網(wǎng)站在數(shù)據(jù)庫中建立一個(gè)新的ID,并把ID通過Cookie傳送給用戶。用戶再次來訪時(shí),網(wǎng)站把該用戶ID對(duì)應(yīng)的計(jì)數(shù)器加1,得到用戶的來訪次數(shù)。

9、exception 對(duì)象java.lang.Throwable

exception 對(duì)象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該對(duì)象將無法編譯JSP文件。

excepation對(duì)象和Java的所有對(duì)象一樣,都具有系統(tǒng)提供的繼承 結(jié)構(gòu)。

exception 對(duì)象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關(guān)鍵字來處理異常情況; 如果在JSP頁面中出現(xiàn)沒有捕獲到的異常,就會(huì)生成 exception 對(duì)象,并把 exception 對(duì)象傳送到在page指令中設(shè)定的錯(cuò)誤頁面中,然后在錯(cuò)誤頁面中處理相應(yīng)的 exception 對(duì)象。



本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://metathetuscanyresort.com/javaee
0 分享到:
和我們?cè)诰€交談!