




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章JSP開(kāi)發(fā)中的常用技巧理論掌握J(rèn)SP中數(shù)據(jù)共享、錯(cuò)誤處理和文件操作的方法
技能學(xué)會(huì)使用一些JSP的高級(jí)開(kāi)發(fā)技術(shù)
要求了解并會(huì)運(yùn)行一些JSP的高級(jí)開(kāi)發(fā)技術(shù)
第7章JSP開(kāi)發(fā)中的常用技巧理論掌握J(rèn)SP中數(shù)據(jù)共享、錯(cuò)本節(jié)將討論JSP開(kāi)發(fā)經(jīng)常要使用的技術(shù)和技巧。通過(guò)學(xué)習(xí)本章,讀者不僅可以掌握一些技巧,也可以鞏固JSP、Servlet的基礎(chǔ)語(yǔ)法知識(shí)。
本章的主要內(nèi)容有:
1.在不同頁(yè)面或者用戶(hù)之間共享數(shù)據(jù)
2.創(chuàng)建錯(cuò)誤處理頁(yè)面
3.在JSP中操作文件
本節(jié)將討論JSP開(kāi)發(fā)經(jīng)常要使用的技術(shù)和技巧。通過(guò)學(xué)習(xí)本章,讀7.1在不同頁(yè)面或者用戶(hù)之間共享數(shù)據(jù)
在JSP中共享數(shù)據(jù),大體上分為兩種情況,第一種是在同一個(gè)用戶(hù)的不同頁(yè)面之間共享數(shù)據(jù),另一種是在不同用戶(hù)之間共享數(shù)據(jù)。7.1在不同頁(yè)面或者用戶(hù)之間共享數(shù)據(jù)在JSP中共享數(shù)據(jù),對(duì)于同一個(gè)用戶(hù)的會(huì)話(huà),要想在不同的頁(yè)面之間共享數(shù)據(jù),可有的選擇
①把數(shù)據(jù)保存在session中(這是比較常見(jiàn)的方式);
②通過(guò)Cookie;
③通過(guò)隱含的表單把數(shù)據(jù)提交到下一個(gè)頁(yè)面;
④通過(guò)ServletContext對(duì)象;
⑤通過(guò)Application對(duì)象;
⑥通過(guò)文件系統(tǒng)或者數(shù)據(jù)庫(kù)。對(duì)于同一個(gè)用戶(hù)的會(huì)話(huà),要想在不同的頁(yè)面之間共享數(shù)據(jù),可有的選要在不同用戶(hù)之間共享數(shù)據(jù),通常方法
①通過(guò)ServletContext對(duì)象;
②通過(guò)Application對(duì)象;
③通過(guò)文件系統(tǒng)或者數(shù)據(jù)庫(kù)。
可見(jiàn),對(duì)于在不同用戶(hù)之間共享數(shù)據(jù)的實(shí)現(xiàn)方法,同樣適用于在同一個(gè)用戶(hù)的不同頁(yè)面實(shí)現(xiàn)數(shù)據(jù)共享。要在不同用戶(hù)之間共享數(shù)據(jù),通常方法
7.1.1在不同頁(yè)面之間共享數(shù)據(jù)
使用Session共享數(shù)據(jù)
用戶(hù)在瀏覽網(wǎng)頁(yè)時(shí),由于Http協(xié)議是一種無(wú)狀態(tài)的協(xié)議,往往在不同的頁(yè)面之間存在數(shù)據(jù)交換的問(wèn)題,這就需要在這些不同的頁(yè)面之間共享數(shù)據(jù)。最常見(jiàn)的實(shí)現(xiàn)方法是把要共享的數(shù)據(jù)保存到Session中。
將[x:]\tomcat\Webapps\examples\file\7\7_1_1\com目錄復(fù)制到[x:]\tomcat\Webapps\examples\Web-INF\classes下。
一個(gè)實(shí)際的用戶(hù)登錄例子。7.1.1在不同頁(yè)面之間共享數(shù)據(jù)使用Session共享數(shù)文件名功能userSession.java驗(yàn)證成功,就把登錄的信息保存在一個(gè)userSession的類(lèi)中,在其他的頁(yè)面可以讀取這個(gè)值
文件login.html
登錄界面
login.jsp登錄界面,實(shí)現(xiàn)userSession類(lèi)
welcome.jsp歡迎界面,把userSession對(duì)象讀取出來(lái)
login_userBean.jsp共享userSession的bean數(shù)據(jù)welcome_userBean.jsp共享userSession的bean數(shù)據(jù)文件名功能userSession.java驗(yàn)證成功,就使用Cookie
創(chuàng)建Cookie,然后通過(guò)response.addCookie()方法把Cookie添加到客戶(hù)端。
文件setCookie.jsp
客戶(hù)端的所有Cookie,然后從這些Cookie中獲得目標(biāo)的Cookie以讀取它的值。
文件getCookie.jsp使用Cookie
創(chuàng)建Cookie,然后通過(guò)respon使用隱含的表單
使用方法:
<formaction="target.jsp">
<inputtype=hiddenname="test"value="test">
<inputtype=hiddenname="test2"value="test2">
</form>
在另一個(gè)頁(yè)面中,通過(guò)以下的方式來(lái)獲得這些數(shù)據(jù):
Stringtest=request.getParameter("test1");
Stringtest2=request.getParameter("test2");
使用隱含的表單
使用方法:
<formac7.1.2在不同的用戶(hù)之間共享數(shù)據(jù)
使用ServletContext
在JSP頁(yè)面中可以通過(guò)getServletContext()方法來(lái)獲得ServletContext對(duì)象。在這種情況下,不同用戶(hù)的頁(yè)面之間可以通過(guò)ServletContext來(lái)共享數(shù)據(jù)。
文件servletContext_chat.jsp使用application對(duì)象
application對(duì)象對(duì)于每個(gè)Web應(yīng)用來(lái)說(shuō)只有一個(gè)。
文件testApplication.jsp
7.1.2在不同的用戶(hù)之間共享數(shù)據(jù)使用ServletCo7.2創(chuàng)建錯(cuò)誤處理頁(yè)面
程序運(yùn)行難免會(huì)發(fā)生異常和錯(cuò)誤。當(dāng)處理JSP頁(yè)面時(shí),遇到的異常分為兩個(gè)基本類(lèi)型:
編譯時(shí)的錯(cuò)誤運(yùn)行時(shí)的錯(cuò)誤7.2創(chuàng)建錯(cuò)誤處理頁(yè)面程序運(yùn)行難免會(huì)發(fā)生異常和錯(cuò)誤。當(dāng)處7.2.1在JSP中聲明出錯(cuò)頁(yè)面
由于JSP文件被編譯成Servlet執(zhí)行,出現(xiàn)異常的默認(rèn)操作就是顯示異常的堆棧。JSP頁(yè)面提供了重寫(xiě)這個(gè)默認(rèn)行為的功能,并且將異常處理轉(zhuǎn)到另一個(gè)文件中:
<%@pageerrorPage="error.jsp"%>
這樣在這個(gè)JSP頁(yè)面中,如果遇到任何未捕獲到的Throwable對(duì)象,那么就會(huì)顯示指定的出錯(cuò)頁(yè)面。7.2.1在JSP中聲明出錯(cuò)頁(yè)面由于JSP文件被編譯成S例子一
文件
mustBeError.jsperror.jsp例子二
文件AddJavaBean.javaadd.jsp
例子一
文件mustBeError.jspe7.3JSP操作文件
本節(jié)介紹在JSP中操作文件的例子。由于JSP能使用Java的IO系統(tǒng),所以在JSP中對(duì)文件的操作和一般Java程序沒(méi)有什么大的區(qū)別。
操作文件主要有兩種類(lèi)型:讀取內(nèi)容寫(xiě)入內(nèi)容或者更改文件的屬性
7.3JSP操作文件本節(jié)介紹在JSP中操作文件的例子。由7.3.1讀取文件內(nèi)容
在讀取文件時(shí),可以有兩種選擇方式通過(guò)ServletContext來(lái)讀取將[x]:\tomcat\Webapps\examples\file\7\7_3_1\file.txt文件復(fù)制到[x]:\tomcat\Webapps\examples下。
只能獲得Servlet上下文之內(nèi)的資源文件readFile.jsp
使用帶緩沖的輸入流來(lái)讀取文件資源文件readFile2.jsp
7.3.1讀取文件內(nèi)容在讀取文件時(shí),可以有兩種選擇方式使用FileReader可以在JSP頁(yè)面中使用FileReader和FilelnputStream等類(lèi)來(lái)讀取文件的內(nèi)容。
使用一個(gè)BufferedReader來(lái)封裝FileReader,這樣就可以每次讀取一行數(shù)據(jù)。
將[x]:\tomcat\Webapps\examples\file\7\7_3_1\UserSession.java文件復(fù)制到c:\下。
文件readFile3.jsp
使用FileReade
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 解除購(gòu)買(mǎi)土地合同范本
- 長(zhǎng)石供應(yīng)合同范本
- 殺豬盤(pán)合同范本
- 委托服裝合同范本
- 2025-2030年中國(guó)汽車(chē)空調(diào)過(guò)濾器市場(chǎng)運(yùn)行狀況及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)服裝零售市場(chǎng)發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 刨花設(shè)備轉(zhuǎn)讓合同范本
- 漁網(wǎng)代售合同范本
- 技術(shù)貿(mào)易壁壘及其應(yīng)對(duì)考核試卷
- 圖冊(cè)制作合同范本
- 基礎(chǔ)護(hù)理學(xué)試題及答案(各章節(jié))-基礎(chǔ)護(hù)理學(xué)第四版試題及答案
- 色彩發(fā)展的歷史課件
- 學(xué)生成長(zhǎng)導(dǎo)師制工作手冊(cè)
- (2023年最新版)醫(yī)師執(zhí)業(yè)、變更執(zhí)業(yè)、多機(jī)構(gòu)備案申請(qǐng)審核表
- 醫(yī)療器械臨床試驗(yàn)質(zhì)量管理規(guī)范培訓(xùn)課件
- 《紙馬》教學(xué)設(shè)計(jì)公開(kāi)課
- 建設(shè)工程工程量清單計(jì)價(jià)標(biāo)準(zhǔn)(2022)
- 小學(xué)道德與法治五年級(jí)下冊(cè)全冊(cè)優(yōu)質(zhì)教案(含課件和素材)
- 施耐德公司品牌戰(zhàn)略
- 三方聯(lián)測(cè)測(cè)量記錄表
- 啦啦操社團(tuán)教學(xué)計(jì)劃(共3頁(yè))
評(píng)論
0/150
提交評(píng)論