JSP內(nèi)置對象定義
JSP提供了由容器實現(xiàn)和管理的內(nèi)置對象,也可以稱之為隱含對象,這些內(nèi)置對象不需要通過JSP頁面編寫來實例化,在所有的JSP頁面中都可以直接使用,它們起到了簡化頁面的作用,JSP的內(nèi)置對象廣泛應用于JSP的各種操作中。
JSP九大內(nèi)置對象
由于JSP使用Java作為腳本語言,所以JSP將具有強大的對象處理能力,并且可以動態(tài)創(chuàng)建Web頁面內(nèi)容。但Java語法在使用一個對象前,需要先實例化這個對象,這其實是一件比較繁瑣的事情。為了簡化開發(fā),JSP提供了一些內(nèi)置對象,用來實現(xiàn)很多JSP應用。在使用JSP內(nèi)置對象時,不需要先定義這些對象,直接使用即可。
在JSP中一共預先定義了9個這樣的對象,分別為request、response、session、application、pageContext、config、page和exception。
request對象
request對象封裝了由客戶端生成的HTTP請求的所有細節(jié),主要包括HTTP頭信息、系統(tǒng)信息、請求方式和請求參數(shù)等。通過request對象提供的響應方法可以處理客戶端瀏覽器提交的HTTP請求中的各項參數(shù)。
1.訪問請求參數(shù)
我們知道request對象用于處理HTTP請求中的各項參數(shù)。在這些參數(shù)中,最常用的就是獲取訪問請求參數(shù)。當通過超鏈接的形式發(fā)送請求時,就可以為該請求傳遞參數(shù),這可以通過在超鏈接的后面加上"?"來實現(xiàn)。
在頁面中定義超鏈接,代碼如下:
刪除
在delete.jsp頁面中,可以通過request對象的getParamater()方法獲取傳遞的參數(shù)值。代碼如下:
在使用request的getParameter()方法獲取傳遞的參數(shù)值時,如果指定的參數(shù)不存在,將但會null,如果指定了參數(shù)名,但未指定參數(shù)值,將返回空的字符串("")。
2.在作用域中管理屬性
在進行請求轉(zhuǎn)發(fā)時,需要把一些數(shù)據(jù)傳遞到轉(zhuǎn)發(fā)后的頁面進行處理。這時,就需要使用request對象的setAttribute()方法將數(shù)據(jù)保存到request范圍內(nèi)的變量中
request對象的setAttribute()方法的語法格式如下:
request.setAttribute(String name,Object object)
參數(shù)說明:
name:表示變量名,為String類型,在轉(zhuǎn)發(fā)后的頁面取數(shù)據(jù)時,就是通過這個變量名獲取數(shù)據(jù)的。
object:用于指定需要在request范圍內(nèi)傳遞的數(shù)據(jù),為Object類型。
在將數(shù)據(jù)保存到request范圍內(nèi)的變量中后,可以通過request對象的getAttribute()方法獲取該變量的值,具體的語法格式如下:
request.getAttribute(String name)
參數(shù)說明:
name:表示變量名,該變量名在request范圍內(nèi)有效。
3.獲取cookie
cookie的中文意思是"小甜餅",然而在互聯(lián)網(wǎng)中的意思與這就完全不同了,它和食品完全沒有關(guān)系。在互聯(lián)網(wǎng)中,cookie是小段的文本信息,在網(wǎng)絡服務器上生成,并發(fā)送給瀏覽器。通過使用cookie可以表示用戶身份,記錄用戶名和密碼,跟蹤重復用戶等。瀏覽器將cookie以key/value的形式保存到客戶機的某個指定目錄中。
通過request的getcookies()方法即可獲得所有cookie對象的集合。
4.解決中文亂碼
因為request請求都是ISO-8859-1編碼的,而在頁面中采用的是UTF-8編碼方式,所以在使用中文參數(shù)時會出現(xiàn)亂碼的問題,要解決此問題,只要將獲取到的數(shù)據(jù)通過String的構(gòu)造方法使用指定的編碼類型重新構(gòu)造一個String對象,即可正確地顯示中文信息。
5.獲取客戶端信息
通過request對象可以獲取客戶端的相關(guān)信息,如HTTP報頭信息,客戶信息提交方式??蛻舳酥鳈CIP地址、端口號等。在客戶端獲取用戶請求相關(guān)的request對象的方法如下所示:
(1)getHeader(String name):獲取HTTP協(xié)議定義的文件頭信息
(2)getHeaders(String name):返回指定名字的request Header的所有值,其結(jié)果是一個枚舉型的實例
(3)getHeadersNames():返回所有request Header的名字,其結(jié)果是一個枚舉型的實例
(4)getMethod():返獲得客戶端向服務器端發(fā)送數(shù)據(jù)的方法,如get、post
(5)getProtocol():獲得客戶端向服務器發(fā)送數(shù)據(jù)所依據(jù)的協(xié)議名稱
(6)getRequestURI():獲取發(fā)出請求字符串的客戶端地址,不包括請求參數(shù)
(7)getRequestURL():獲取發(fā)出請求字符串的客戶端地址
(8)getReadPath():返回當前請求文件的絕對地址
(9)getRemoteAddr():返回客戶端的IP地址
(10)getRemoteHost():返回客戶端的主機名
(11)getServerName():獲取服務器的名字
(12)getServerPath():獲取客戶端所請求的腳本文件的文件路徑
(13)getServerPort():獲取服務器的端口號
6.顯示國際化信息
瀏覽器可以通過accept-language的HTTP報頭向Web服務器指明它所使用的本地語言,request對象中的getLocale()和getLocales()方法允許JSP開發(fā)人員獲取這一信息,獲取的信息屬于java.util.Local類型。java.util.Local類型的對象封裝了一個國家和國家所使用的一種語言,通過這一信息,JSP開發(fā)者就可以使用語言所特有的信息做響應。
response對象
response對象用于響應客戶請求,向客戶端輸出信息,它封裝了JSP產(chǎn)生的響應,并發(fā)送到客戶端已響應客戶端的請求,請求的數(shù)據(jù)可以是各種數(shù)據(jù)類型,甚至是文件。response對象在JSP頁面內(nèi)有效。
1.重定向網(wǎng)頁
使用response對象提供的sendRedirect()方法可以將網(wǎng)頁重定向到另一個頁面。重定向操作支持將地址重定向不同的主機上,這一點與轉(zhuǎn)發(fā)不同。在客戶端瀏覽器上將會得到跳轉(zhuǎn)的地址,并重新發(fā)送請求連接,用戶可以從瀏覽器的地址欄中看到跳轉(zhuǎn)后的地址。進行重定向操作后,request中的屬性全部失效,并且開始一個新的request對象。
sendRedirect()方法的語法格式如下:
resposne.sendRedirect(String path);
參數(shù)說明:
path:用于指定目標路徑,可以是相對路徑,也可以是不同主機的其他URL地址。
2.處理HTTP頭文件
通過response對象可以設(shè)置HTTP響應報頭,其中,最常用的是禁用緩存、設(shè)置頁面自動刷新和定時跳轉(zhuǎn)網(wǎng)頁。
(1)禁用緩存
在默認的情況下,瀏覽器將會對顯示的網(wǎng)頁內(nèi)容進行緩存。這樣,當用戶再次訪問相關(guān)網(wǎng)頁時,瀏覽器會判斷網(wǎng)頁是否會有變化,如果沒有變化則直接顯示緩存中的內(nèi)容,這樣可以提高網(wǎng)頁的顯示速度,對于一些安全性較高的網(wǎng)站,通常需要禁用緩存。
通過設(shè)置HTTP頭的方法實現(xiàn)禁用緩存,代碼如下:
(2)設(shè)置頁面自動刷新
通過設(shè)置HTTP頭還可以實現(xiàn)頁面的自動刷新
使網(wǎng)頁每隔10秒自動刷新一次,代碼如下:
(3)定時跳轉(zhuǎn)網(wǎng)頁
通過設(shè)置HTTP頭還可以實現(xiàn)定時跳轉(zhuǎn)網(wǎng)頁的功能
使網(wǎng)頁5秒鐘后自動跳轉(zhuǎn)到指定頁面,代碼如下:
getLastAccessdTime():返回客戶端最后一次與會話相關(guān)聯(lián)的請求時間。
getMaxInactiveInterval():以秒為單位返回一個會話內(nèi)兩個請求最大時間間隔。
setMaxInactiveInterval():以秒為單位設(shè)置session的有效時間。
Javaweb開發(fā)視頻
免費html視頻教程:http://www.bjpowernode.com/v27/
免費css視頻教程下載:http://www.bjpowernode.com/v67/
Javascript視頻教程下:http://www.bjpowernode.com/v68/
jquery視頻教程全集:http://www.bjpowernode.com/v30/
ajax視頻教程全集:http://www.bjpowernode.com/v31/
Java jsp入門教程:http://www.bjpowernode.com/v34/
spring視頻教程下載:http://www.bjpowernode.com/v38/
Java jsp入門教程:http://www.bjpowernode.com/v34/
以上就是長沙達內(nèi)教育Java培訓機構(gòu)小編介紹的“誰的Javaweb視頻教程好—JSP內(nèi)置對象”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。
相關(guān)內(nèi)容
Java web目前流行的框架總結(jié)
五大 JAVA Web 框架的優(yōu)缺點對比
Javaweb開發(fā)學習路線及Java三大框架
JavaWEB基礎(chǔ)面試題
Javaweb學習路線(自學規(guī)劃)