02單元2基于JSP內(nèi)置對象的Web應(yīng)用程序開發(fā)(校)_第1頁
02單元2基于JSP內(nèi)置對象的Web應(yīng)用程序開發(fā)(校)_第2頁
02單元2基于JSP內(nèi)置對象的Web應(yīng)用程序開發(fā)(校)_第3頁
02單元2基于JSP內(nèi)置對象的Web應(yīng)用程序開發(fā)(校)_第4頁
02單元2基于JSP內(nèi)置對象的Web應(yīng)用程序開發(fā)(校)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單元2基于JSP內(nèi)置對象的Web應(yīng)用程序開發(fā)單元2基于JSP內(nèi)置對象的Web應(yīng)用程序開發(fā)熟練掌握和靈活應(yīng)用這些內(nèi)置對象,對于Java Web程序開發(fā)人員來說至關(guān)重要的。本單元主要應(yīng)用這些內(nèi)置對象開發(fā)Web應(yīng)用程序。【問題探析】【問題1】JSP與Servlet有何關(guān)系【問題2】JSP頁面的HTML文本代碼轉(zhuǎn)譯成Servlet類代碼有何變化?JSP頁面的HTML文本代碼轉(zhuǎn)譯成Servlet類代碼時(shí),將HTML文本代碼使用out.write()方法包裹起來,例如,對于圖2-2左邊的HTML代碼轉(zhuǎn)譯為Servlet類后,代碼如右邊所示。<html><head><title

2、>測試</title></head><body><h3> Hello!JSP </h3></body></html>out.write("<html>rn");out.write(" <head>rn");out.write(" <title>測試</title>rn");out.write(" </head>rn");out.write(" <bod

3、y>rn");out.write(" <h3>Hello!JSP </h3>rn");out.write(" </body>rn");out.write("</html>rn");圖2-2JSP頁面的HTML文本代碼轉(zhuǎn)譯成Servlet類代碼【知識(shí)必備】1JSP的內(nèi)置對象簡介在JSP中提供的9個(gè)內(nèi)置對象,分別為request、response、session、application、out、page、pageContext、config和exception。(1)requ

4、est對象request對象的作用是獲取客戶端的請求信息,主要用于接收通過HTTP協(xié)議傳送到服務(wù)器端的數(shù)據(jù),客戶端可以通過表單提交或者地址重定向發(fā)送參數(shù)。(2)response對象response對象的作用是對客戶端的請求做出響應(yīng),將Web服務(wù)器的處理結(jié)果返回給客戶端。(3)session對象session對象是由服務(wù)器自動(dòng)創(chuàng)建的與用戶請求相關(guān)的對象,服務(wù)器為每一個(gè)用戶都生成一個(gè)session對象,用于保存該用戶的信息,跟蹤用戶的操作狀態(tài)。(4)application對象application對象可以將所有用戶的共享信息保存在服務(wù)器中,直到服務(wù)器關(guān)閉,否則application對象中保存的信息

5、會(huì)在整個(gè)應(yīng)用中都有效,使得每個(gè)用戶都能訪問該對象。(5)out對象out對象用于在Web瀏覽器內(nèi)輸出信息,并且管理服務(wù)器上的輸出緩沖區(qū)。(6)page對象page對象代表JSP本身,只有在JSP頁面內(nèi)才是合法的。(7)pageContext對象pageContext對象主要用于取得任何范圍的參數(shù),通過它可以獲取JSP頁面的request、response、session、application、out等對象。(8)config對象config對象主要用于獲取服務(wù)器的配置信息,通過pageContext對象的getServletConfig()方法可以獲取一個(gè)config對象。(9)except

6、ion對象exception對象用于顯示異常信息,在頁面如果要使用exception對象,必須將該頁面page指令的isErrorPage屬性設(shè)置為true2cookie對象簡介cookie是保存在用戶硬盤上的一段文本,允許Web站點(diǎn)在用戶的計(jì)算機(jī)上保存信息并且隨后再將其取回。3JSP主要內(nèi)置對象有效作用范圍比較(1)page對象只在同一個(gè)JSP頁面內(nèi)有效。(2)response對象只在JSP頁面(包括當(dāng)前JSP頁面中使用<% include>標(biāo)簽、<jsp:include>標(biāo)簽和<forward>標(biāo)簽包含的其他JSP頁面)內(nèi)有效。(3)request對象在

7、一次訪問請求內(nèi)有效,服務(wù)器跳轉(zhuǎn)后依然有效,但客戶端跳轉(zhuǎn)后無效。(4)session對象在一次會(huì)話范圍內(nèi)有效,無論是客戶端跳轉(zhuǎn)還是服務(wù)器端跳轉(zhuǎn)都有效,但瀏覽器關(guān)閉后則無效。(5)application對象在服務(wù)器中保存所有用戶的共享信息,該對象中保存的信息在整個(gè)應(yīng)用中都有效,使得每個(gè)用戶都能訪問該對象。【操作必備】(1)準(zhǔn)備開發(fā)Web應(yīng)用程序所需的圖片文件、CSS樣式文件和驗(yàn)證用的Javascript文件。(2)啟動(dòng)Eclipse,設(shè)置工作空間為Unit02,然后進(jìn)入Eclipse的開發(fā)環(huán)境。(3)在Eclipse集成開發(fā)環(huán)境中配置與啟動(dòng)Tomcat服務(wù)器。(4)新建動(dòng)態(tài)Web項(xiàng)目unit02。

8、【基礎(chǔ)應(yīng)用】【任務(wù)2-1】使用request對象獲取表單的信息【任務(wù)描述】Web應(yīng)用最重要的特點(diǎn)是交互性,而實(shí)現(xiàn)交互性的重要內(nèi)置對象是request對象??蛻舳吮韱沃休斎氲男畔ⅲ峤唤o服務(wù)器。通過request對象可以獲取表單中的輸入信息。創(chuàng)建一個(gè)有關(guān)旅游信息的調(diào)查網(wǎng)頁tourInfo2-1.html,然后使用request對象獲取表單中的信息,且在另一個(gè)JSP頁面task2-1.jsp中輸出這些旅游信息?!救蝿?wù)實(shí)施】(1)創(chuàng)建網(wǎng)頁tourInfo2-1.html在項(xiàng)目unit02中創(chuàng)建一個(gè)網(wǎng)頁tourInfo2-1.html,在該頁面中添加一個(gè)form表單,在單中分別添加文本框、單選按鈕、下

9、拉列表框、復(fù)選框和提交按鈕,其主要代碼如表2-1所示。(2)新建JSP文件task2-1.jsp在項(xiàng)目unit02中新建一個(gè)JSP文件task2-1.jsp,該文件接收tourInfo2-1.html頁面中表單提交的內(nèi)容,并將表單信息顯示在頁面中。該文件的主要代碼如表2-2所示。(3)運(yùn)行程序輸出結(jié)果運(yùn)行網(wǎng)頁tourInfo2-1.html,然后在該網(wǎng)頁的表單中輸入姓名、選擇性別、選擇職業(yè)所屬類型、選擇平常會(huì)上的旅游網(wǎng)站,如圖2-3所示。接著單擊【提交】按鈕,在task2-1.jsp頁面中顯示的提交信息如圖2-4所示。【任務(wù)2-2】使用session對象實(shí)現(xiàn)頁面訪問控制與使用response對

10、象實(shí)現(xiàn)頁面選擇跳轉(zhuǎn)【任務(wù)描述】(1)創(chuàng)建JSP頁面task2-2.jsp,當(dāng)用戶瀏覽該頁面時(shí),首先驗(yàn)證用戶是否為已經(jīng)登錄的合法用戶。如果已成功登錄,則在頁面顯示歡迎信息,并且可以正常瀏覽網(wǎng)頁,同時(shí)顯示【退出】超鏈接。如果用戶沒有登錄過,則會(huì)顯示提示信息,并顯示相應(yīng)的【登錄】超鏈接。(2)在JSP頁面task2-2.jsp單擊【登錄】超鏈接,進(jìn)入登錄頁面,在登錄頁面輸入登錄信息,并向JSP頁面interim2-2.jsp進(jìn)行數(shù)據(jù)提交,由JSP頁面interim2-2.jsp進(jìn)行登錄數(shù)據(jù)的驗(yàn)證,如果驗(yàn)證通過,則保存用戶的登錄信息,并跳轉(zhuǎn)到JSP頁面task2-2.jsp;如果驗(yàn)證未通過,則跳轉(zhuǎn)到顯

11、示錯(cuò)誤提示信息的JSP頁面error2-2.jsp。(3)在JSP頁面task2-2.jsp中單擊【退出】超鏈接,進(jìn)入JSP頁面logout2-2.jsp,該頁面實(shí)現(xiàn)定時(shí)跳轉(zhuǎn)功能?!救蝿?wù)實(shí)施】(1)創(chuàng)建JSP頁面task2-2.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面task2-2.jsp,其主要代碼如表2-3所示。(2)創(chuàng)建JSP頁面login2-2.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面login2-2.jsp,其主要代碼表2-4所示,將表單的action屬性設(shè)置為interim2-2.jsp。(3)創(chuàng)建JSP頁面interim2-2.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面

12、interim2-2.jsp,其主要代碼如表2-5所示。(4)創(chuàng)建JSP頁面logout2-2.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面logout2-2.jsp,其主要代碼如表2-6所示。(5)創(chuàng)建JSP頁面error2-2.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面error2-2.jsp,其主要代碼如下所示。<div class="logosearch w"> <img alt="頁面出錯(cuò)" src="images/wrong_img.gif"></div>(6)運(yùn)行程序輸出結(jié)果運(yùn)行JS

13、P頁面task2-2.jsp,其運(yùn)行結(jié)果如圖2-5所示。圖2-5JSP頁面task2-2.jsp的運(yùn)行結(jié)果在JSP頁面task2-2.jsp中單擊【登錄】超鏈接,進(jìn)入用戶登錄頁面,在該登錄頁面輸入“用戶名”和“密碼”,如圖2-6所示。然后單擊【登錄】按鈕,如果成功登錄,則跳轉(zhuǎn)到JSP頁面task2-2.jsp,如圖2-7所示。在JSP頁面task2-2.jsp中單擊【退出】超鏈接,進(jìn)入JSP頁面logout2-2.jsp,顯示如圖2-8所示的信息,3秒鐘后自動(dòng)跳轉(zhuǎn)到JSP頁面task2-2.jsp。圖2-8JSP頁面logout2-2.jsp中顯示的提示信息【任務(wù)2-3】使用applicati

14、on對象統(tǒng)計(jì)網(wǎng)站的在線人數(shù)【任務(wù)描述】application對象可以將信息保存在服務(wù)器,并且保存的信息在整個(gè)應(yīng)用中都有效,直到服務(wù)器關(guān)閉。應(yīng)用application對象統(tǒng)計(jì)網(wǎng)站的在線人數(shù)?!救蝿?wù)實(shí)施】(1)創(chuàng)建JSP頁面index2-3.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面index2-3.jsp,其主要代碼如表2-4所示,但不同的是這里將表單的action屬性值設(shè)置為“index2-3.jsp”,即向頁面本身提交數(shù)據(jù)。這里學(xué)習(xí)一種新的數(shù)據(jù)獲取與傳遞方法,本頁面實(shí)現(xiàn)數(shù)據(jù)獲取與傳遞的代碼如表2-7所示。(2)創(chuàng)建JSP頁面task2-3.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面tas

15、k2-3.jsp,其主要代碼如表2-8所示。由于服務(wù)器啟動(dòng)時(shí),第一次瀏覽網(wǎng)頁,application對象的屬性num的值為null,因此代碼2-8中第5行要判斷屬性值是否為空。如果同一個(gè)用戶多次刷新網(wǎng)頁,應(yīng)不再增加在線人數(shù)的計(jì)數(shù),因此第7行要使用session的isNew()方法判斷是否為新用戶。(3)運(yùn)行程序輸出結(jié)果運(yùn)行JSP頁面index2-3.jsp,顯示登錄頁面,在該頁面中單擊【登錄】按鈕,顯示如圖2-9所示的頁面。圖2-9頁面task2-3.jsp的運(yùn)行結(jié)果【任務(wù)2-4】使用application對象獲取數(shù)據(jù)庫的連接信息【任務(wù)描述】(1)在web.xml文件中通過配置<cont

16、ext-param>元素初始化數(shù)據(jù)庫的連接參數(shù)。(2)使用application對象的方法訪問web.xml獲取數(shù)據(jù)庫的連接參數(shù)?!救蝿?wù)實(shí)施】(1)新建動(dòng)態(tài)Web項(xiàng)目unit021。創(chuàng)建新的動(dòng)態(tài)Web項(xiàng)目unit021,并自動(dòng)創(chuàng)建web.xml文件。(2)在web.xml文件配置<context-param>元素打開web.xml文件,添加多個(gè)<context-param>元素,通過配置該元素初始化數(shù)據(jù)庫的連接參數(shù),代碼如表2-9所示。(3)創(chuàng)建JSP頁面index2-4.jsp在項(xiàng)目unit021中創(chuàng)建一個(gè)JSP頁面index2-4.jsp,其主要代碼如表2-1

17、0所示(4)運(yùn)行程序輸出結(jié)果JSP頁面index2-4.jsp的運(yùn)行如圖2-10所示圖2-10JSP頁面index2-4.jsp的運(yùn)行結(jié)果【任務(wù)2-5】通過cookie實(shí)現(xiàn)自動(dòng)登錄【任務(wù)描述】(1)當(dāng)用戶第一次登錄時(shí),登錄頁面表單中用戶名和密碼為空。(2)當(dāng)用戶提交過一次登錄表單后,將其登錄信息保存到客戶端本機(jī)的cookie中,用戶再次登錄時(shí)會(huì)從cookie中獲取用戶的用戶名和密碼并自動(dòng)填入表單控件。【任務(wù)實(shí)施】(1)創(chuàng)建JSP頁面login2-5.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面login2-5.jsp,在該頁面添加表單及控件,用于用戶輸入用戶名和密碼,其主要代碼如表2-11所示

18、。表2-11中第3行使用request對象的getCookies()方法獲取客戶端的cookie,第4行判斷是否包含有服務(wù)器發(fā)送的cookie。如果沒有,則說明該用戶是第一次登錄;如果有,則直接將用戶名和密碼讀取出來,并顯示在用戶名對應(yīng)的文本框和密碼框中。(2)創(chuàng)建JSP頁面task2-5.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面task2-5.jsp,該頁面通過request對象將用戶輸入的用戶名和密碼提取出來,創(chuàng)建一個(gè)cookie對象,并通過reponse對象的addCookie()方法將其發(fā)送到客戶端,其主要代碼如表2-12所示。(3)運(yùn)行程序輸出結(jié)果運(yùn)行JSP頁面login2-5.

19、jsp,第一次登錄時(shí)在該頁面中分別輸入用戶名為“admin”,密碼為“123456”,如圖2-11所示,單擊【登錄】按鈕進(jìn)行登錄。 圖2-11第一次登錄時(shí)在JSP頁面login2-5.jsp中輸入用戶名和密碼用戶再次登錄時(shí)用戶名和密碼自動(dòng)顯示表單對應(yīng)的控件中?!緷u進(jìn)應(yīng)用】【任務(wù)2-6】獲取用戶登錄信息【任務(wù)描述】(1)創(chuàng)建JavaScript文件validate.js,在該文件中編寫JavaScript代碼在用戶登錄時(shí)進(jìn)行非空驗(yàn)證和用戶名長度驗(yàn)證。(2)創(chuàng)建一個(gè)用戶登錄頁面login2-6.jsp,在該頁面中添加一個(gè)表單,并在表單中添加輸入用戶名的文本框、輸入密碼的密碼框和【登錄】按鈕等多個(gè)表

20、單控件,其外觀效果如圖2-12所示。圖2-12用戶登錄頁面login2-6.jsp的外觀效果(3)用戶登錄時(shí)輸入登錄信息并單擊【登錄】按鈕提交登錄信息,“用戶名”和“密碼”經(jīng)驗(yàn)證為合法用戶則在另一個(gè)JSP頁面task2-6.jsp中獲取并顯示用戶的登錄信息?!救蝿?wù)實(shí)施】(1)創(chuàng)建JavaScript文件在項(xiàng)目unit02中創(chuàng)建一個(gè)JavaScript文件validate.js,在該文件編寫代碼在用戶登錄時(shí)進(jìn)行非空驗(yàn)證和用戶名長度驗(yàn)證,其主要代碼如表2-13所示。(2)創(chuàng)建JSP頁面login2-6.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面login2-6.jsp,其外觀效果如圖2-12所示

21、,主要代碼如表2-14所示。(3)創(chuàng)建JSP頁面task2-6.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面task2-6.jsp,其主要代碼如表2-15所示。(4)運(yùn)行程序輸出結(jié)果運(yùn)行JSP頁面login2-6.jsp,在登錄頁面中的表單控件中分別輸入用戶名為“admin”,密碼為“123456”,單擊【登錄】按鈕提交登錄信息,并在頁面task2-6.jsp中顯示用戶輸入的用戶名和密碼,如圖2-13所示。圖2-13頁面task2-6.jsp中顯示用戶輸入的用戶名和密碼【任務(wù)2-7】獲取用戶注冊信息【任務(wù)描述】(1)創(chuàng)建一個(gè)用戶注冊頁面register2-7.jsp,在該頁面中添加一個(gè)表單,并

22、在表單中添加輸入用戶名的文本框、輸入密碼的密碼框、輸入Email的文本框、輸入驗(yàn)證碼的文本框和【注冊】按鈕等多個(gè)表單控件,其外觀效果如圖2-14所示。圖2-14用戶注冊頁面register2-7.jsp的外觀效果(2)用戶注冊時(shí),在注冊頁面中輸入注冊信息,然后單擊【注冊】按鈕,注冊信息經(jīng)驗(yàn)證為合法信息則在另一個(gè)JSP頁面task2-7.jsp中獲取并顯示注冊信息。(3)在JSP頁面task2-7.jsp中使用request對象的getParameter()獲取用戶提交的注冊信息。(4)在JSP頁面task2-7.jsp中使用request對象的setAttribute()方法在其屬性列表中添加

23、一個(gè)屬性,然后在request對象的作用域范圍內(nèi)使用getAttribute()方法獲取所添加屬性的值。(5)編寫JavaScript代碼,分別使用不同的方法獲取用戶名、密碼和Email等用戶信息?!救蝿?wù)實(shí)施】(1)創(chuàng)建JSP頁面register2-7.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面register2-7.jsp,其外觀效果如圖2-14所示,主要代碼如表2-16所示。表2-16中所使用的JavaScript文件validate.js的代碼如表2-13所示。(2)創(chuàng)建JSP頁面task2-7.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面task2-7.jsp,其主要代碼如表2-17

24、所示。(3)運(yùn)行程序輸出結(jié)果運(yùn)行JSP頁面login2-7.jsp,在注冊頁面中的表單控件中分別輸入用戶名為“admin”,密碼為“123456”,Email為“123456”,單擊【注冊】按鈕提交注冊信息,并在頁面task2-7.jsp中顯示用戶輸入的用戶名、密碼和Email,如圖2-15所示。圖2-15頁面task2-7.jsp中顯示用戶的注冊信息同時(shí)打開如圖2-16所示的對話框,顯示相同的用戶注冊信息。圖2-16輸出用戶注冊信息的對話框【典型應(yīng)用】【任務(wù)2-8】應(yīng)用JSP內(nèi)置對象獲取用戶在某網(wǎng)頁停留的時(shí)間【任務(wù)描述】應(yīng)用session對象的setAttribute()方法和getAttribute()統(tǒng)計(jì)用戶在某一頁停留的時(shí)間,并且要求每隔10秒鐘刷新一次頁面顯示用戶停留的時(shí)間?!救蝿?wù)實(shí)施】(1)創(chuàng)建JSP頁面task2-8.jsp在項(xiàng)目unit02中創(chuàng)建一個(gè)JSP頁面task2-8.jsp,其主要代碼如表2-18所示。(2)運(yùn)行程序輸出結(jié)果運(yùn)行JSP頁面task2-8.jsp,網(wǎng)頁每隔10秒鐘自動(dòng)刷新一次,用戶在網(wǎng)頁的停留的時(shí)間如圖2-17所示。圖2-17JSP頁面task2-8.jsp的運(yùn)行結(jié)果【任務(wù)2-9】應(yīng)用JSP內(nèi)置對象防止HTML表單在網(wǎng)站外部提交【任務(wù)描述】通過request對象的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論