使用jsp開發(fā)web應(yīng)用系統(tǒng)理論部分教學(xué)tp7v1_第1頁
使用jsp開發(fā)web應(yīng)用系統(tǒng)理論部分教學(xué)tp7v1_第2頁
使用jsp開發(fā)web應(yīng)用系統(tǒng)理論部分教學(xué)tp7v1_第3頁
使用jsp開發(fā)web應(yīng)用系統(tǒng)理論部分教學(xué)tp7v1_第4頁
使用jsp開發(fā)web應(yīng)用系統(tǒng)理論部分教學(xué)tp7v1_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第七章JSP頁面的訪問控制回顧使用JSP編程時,如何在服務(wù)器端獲得用戶在文本框中輸入的數(shù)值?什么是JSP內(nèi)置對象?列舉一些常用的JSP內(nèi)置對象,并說明它們的作用 預(yù)習(xí)檢查請說明JSP內(nèi)置對象session與application的區(qū)別 include指令的作用是什么?本章任務(wù)完成最終版的新聞發(fā)布系統(tǒng)為新聞發(fā)布系統(tǒng)增加訪問控制為新聞發(fā)布系統(tǒng)增加已訪問人數(shù)統(tǒng)計實現(xiàn)新聞發(fā)布系統(tǒng)的分級瀏覽 本章目標(biāo)掌握訪問控制實現(xiàn)的流程掌握JSP內(nèi)置對象的用法session對象application對象掌握include指令掌握如何在超鏈接中傳遞參數(shù)生活中的訪問控制下載電子書時,系統(tǒng)會提示用戶登錄網(wǎng)站 點擊下載, 系

2、統(tǒng)轉(zhuǎn)入登錄頁面 每次下載之前,系統(tǒng)如何判斷用戶是否已經(jīng)登錄?如何實現(xiàn)訪問控制系統(tǒng)如何保存不同用戶的登錄信息?使用JSP會話跟蹤機制,可以維持每個用戶的會話信息,也就是為不同的用戶保存不同的數(shù)據(jù) 12 訪問控制流程圖:用戶登錄進入用戶注冊頁面系統(tǒng)保存該用戶的登錄信息進入欲訪問的頁面是否是注冊用戶否是用戶直接訪問某個頁面進入用戶登錄頁面顯示該頁面內(nèi)容系統(tǒng)是否保存了該用戶登錄信息否是瀏覽器關(guān)閉,本次會話結(jié)束什么是會話一個會話就是瀏覽器與服務(wù)器之間的一次通話,它包含瀏覽器與服務(wù)器之間的多次請求、響應(yīng)過程 瀏覽器session對象請求 1瀏覽器請求 2nsession是JSP內(nèi)置對象,與瀏覽器一一對應(yīng),

3、允許用戶存儲和提取會話狀態(tài)的信息響應(yīng) 1響應(yīng) 2nsession對象JSP內(nèi)置對象sessionsession對象用來存儲有關(guān)用戶會話的所有信息session對象常用方法:void setAttribute(String key, Object value):以鍵/值的方式,將一個對象的值存放到session中Object getAttribute(String key):根據(jù)名稱去獲取session中存放對象的值session.setAttribute(name, admin);String name = (String) session.getAttribute(name);訪問控制就是基

4、于session來完成的 為新聞發(fā)布系統(tǒng)增加訪問控制 4-1升級新聞發(fā)布系統(tǒng),增加訪問控制功能,具體要求如下:提供用戶登錄頁面用戶必須登錄之后,才能訪問新聞發(fā)布系統(tǒng)登錄處理頁面(login.jsp)1、獲得登錄信息2、查詢數(shù)據(jù)庫,判斷該用戶是否注冊3、如果該用戶已注冊,在session中保存該用戶的登錄信息,并且跳轉(zhuǎn)到新聞發(fā)布系統(tǒng)的首頁面新聞發(fā)布系統(tǒng)首頁面(index.jsp)1、從session中提取該用戶信息2、如果用戶信息存在,顯示首頁內(nèi)容3、如果用戶信息不存在,跳轉(zhuǎn)到登錄頁面用戶已注冊session中無法提取到用戶信息123為新聞發(fā)布系統(tǒng)增加訪問控制 4-2在news數(shù)據(jù)庫中創(chuàng)建表us

5、erinfo,負責(zé)存儲用戶名、密碼創(chuàng)建類(User.java),負責(zé)存儲用戶名、密碼創(chuàng)建登錄頁面(login.html)創(chuàng)建登錄處理頁面(login.jsp)登錄處理頁面的代碼片斷在session中存放用戶登錄信息完整代碼實現(xiàn)完整代碼實現(xiàn)完整代碼實現(xiàn)為新聞發(fā)布系統(tǒng)增加訪問控制 4-3 在新聞發(fā)布系統(tǒng)后臺首頁面(index1.jsp)中加入登錄驗證如果session中不存在該用戶的登錄信息,轉(zhuǎn)入登錄頁面完整代碼實現(xiàn)為新聞發(fā)布系統(tǒng)增加訪問控制 4-4訪問控制效果驗證,步驟如下:直接在IE地址欄中輸入URL,訪問系統(tǒng)首頁面通過登錄頁面進入系統(tǒng)首頁面重新開啟一個IE窗口,直接訪問系統(tǒng)首頁面每個步驟會發(fā)

6、生什么樣的結(jié)果?為什么會產(chǎn)生這樣的結(jié)果?每個session對象都與瀏覽器一一對應(yīng) 重新開啟一個瀏覽器,相當(dāng)于重新創(chuàng)建一個session對象 演示:訪問控制效果驗證include指令 2-1除了首頁面,其它頁面中同樣需要加入登錄驗證, 有沒有辦法避免冗余代碼的出現(xiàn)?可以將一些共性的內(nèi)容寫入一個單獨的文件中,然后通過include指令引用該文件,從而降低代碼的冗余問題,也便于修改共性內(nèi)容 include指令 2-2創(chuàng)建登錄驗證文件 checklogin.jsp在后臺首頁面(index.jsp)中使用include指令引用登錄驗證文件完整代碼實現(xiàn)小結(jié)1創(chuàng)建登錄頁面login.html提供用戶名輸入框

7、、以及登錄按鈕創(chuàng)建登錄處理頁面login.jsp如果用戶名為sa,把用戶名存儲在session中,并跳轉(zhuǎn)進入index.jsp中否則跳轉(zhuǎn)進入login.html頁面創(chuàng)建頁面index.jsp如果session中沒有該用戶信息,跳轉(zhuǎn)進入login.html中否則顯示歡迎信息login.htmllogin.jspindex.jsp為新聞發(fā)布系統(tǒng)增加已訪問人數(shù)統(tǒng)計 4-1升級新聞發(fā)布系統(tǒng),增加已訪問人數(shù)統(tǒng)計功能,具體要求如下:左導(dǎo)航頁面中增加超鏈接:已訪問人數(shù)統(tǒng)計已訪問人數(shù)統(tǒng)計頁面:顯示已訪問人數(shù),以及訪問者的登錄名稱登錄處理頁面(login2.jsp)1、在session中保存該用戶信息2、在全局

8、范圍內(nèi)保存該用戶信息3、跳轉(zhuǎn)到新聞發(fā)布系統(tǒng)的首頁面1243為新聞發(fā)布系統(tǒng)增加已訪問人數(shù)統(tǒng)計 4-2創(chuàng)建登錄頁面(login2.html)創(chuàng)建登錄處理頁面(login2.jsp)登錄處理頁面代碼片斷if (rs.next() User logineduser = new User(name, pass);session.setAttribute(LOGINED_USER, logineduser);List loginedUsers = new ArrayList(); /訪問者列表if (application.getAttribute(LOGINED_USER) != null) login

9、edUsers = (List) application.getAttribute(LOGINED_USER);loginedUsers.add(logineduser); /把新登錄用戶的信息存入訪問者列表中application.setAttribute(LOGINED_USER, loginedUsers);response.sendRedirect(index.jsp);在全局范圍內(nèi)存入訪問者列表從全局范圍內(nèi)取出原有的訪問者列表完整代碼實現(xiàn)完整代碼實現(xiàn)為新聞發(fā)布系統(tǒng)增加已訪問人數(shù)統(tǒng)計 4-3在新聞發(fā)布系統(tǒng)左導(dǎo)航欄中加入超鏈接(left.jsp)創(chuàng)建已訪問人數(shù)統(tǒng)計頁面(showAllLo

10、ginedUsers.jsp)已訪問人數(shù)統(tǒng)計頁面代碼片斷目前,有人已經(jīng)訪問過本網(wǎng)站!訪問者的登錄名稱分別是:% for (int i = 0; i loginedUsers.size(); i+) User logineduser = (User) loginedUsers.get(i);out.print(logineduser.getName();out.print(); % 從全局范圍內(nèi)取出訪問者列表逐行顯示每個訪問者的登錄名稱完整代碼實現(xiàn)完整代碼實現(xiàn)為新聞發(fā)布系統(tǒng)增加已訪問人數(shù)統(tǒng)計 4-4已訪問人數(shù)統(tǒng)計效果驗證,步驟如下:通過登錄頁面進入系統(tǒng)首頁面,查看已訪問人數(shù)統(tǒng)計重新開啟一個IE窗

11、口,使用不同的用戶登錄進入首頁面,查看已訪問人數(shù)統(tǒng)計每個步驟會發(fā)生什么樣的結(jié)果?為什么會產(chǎn)生這樣的結(jié)果?演示:已訪問人數(shù)統(tǒng)計的效果驗證JSP內(nèi)置對象applicationapplication類似于系統(tǒng)的“全局變量”,用于實現(xiàn)用戶之間的數(shù)據(jù)共享application對象的常用方法:void setAttribute(String key, Object value):以鍵/值的方式,將一個對象的值存放到application中Object getAttribute(String key):根據(jù)鍵去獲取application中存放對象的值application.setAttribute(LOGI

12、NED_USER, new ArrayList();if (application.getAttribute(LOGINED_USER) != null) List loginedUsers = (List) application.getAttribute(LOGINED_USER);新聞發(fā)布系統(tǒng)的分級瀏覽 4-1實現(xiàn)新聞的分級瀏覽功能,具體要求如下:在新聞發(fā)布系統(tǒng)的前臺首頁面上,顯示所有新聞一級標(biāo)題 為所有新聞一級標(biāo)題設(shè)置超鏈接,點擊后,顯示下屬的新聞二級標(biāo)題“體育”對應(yīng)的超鏈接“體育”下屬的新聞二級標(biāo)題列表點擊“體育”新聞發(fā)布系統(tǒng)的分級瀏覽 4-2創(chuàng)建前臺首頁面(newspre.jsp)

13、使用表格把頁面分為三塊:上欄、左下欄、右下欄上欄顯示圖片左下欄顯示新聞一級標(biāo)題,提取到一個單獨的文件showFirstTitle.jsp中右下欄顯示新聞二級標(biāo)題,提取到一個單獨的文件showSecondTitle.jsp中使用include指令引入這兩個文件上欄完整代碼實現(xiàn)右下欄左下欄新聞發(fā)布系統(tǒng)的分級瀏覽 4-3創(chuàng)建新聞一級標(biāo)題的瀏覽頁面(showFirstTitle.jsp )代碼片斷%/從數(shù)據(jù)庫中獲取所有新聞一級標(biāo)題,并逐行顯示FirstLeveTitleDbOpreation first = new FirstLeveTitleDbOpreation();List list1 = fi

14、rst.getAllFirstLevelTitleList();if (list1!=null & list1.size() != 0) for (int i = 0; i a href =newspre.jsp?parentId=超鏈接中傳遞參數(shù):新聞一級標(biāo)題的ID完整代碼實現(xiàn)新聞發(fā)布系統(tǒng)的分級瀏覽 4-4在類SecondLevelTitleDbOpreation中添加方法getSecondByFirst(),根據(jù)新聞一級標(biāo)題的ID獲取對應(yīng)的新聞二級標(biāo)題創(chuàng)建新聞二級標(biāo)題的瀏覽頁面(showSecondTitle.jsp)根據(jù)新聞一級標(biāo)題的ID,顯示對應(yīng)的新聞二級標(biāo)題代碼片斷處理URL中的請求參數(shù):得到新聞一級標(biāo)題的ID完整代碼實現(xiàn)完整代碼實現(xiàn)演示:新聞發(fā)布

溫馨提示

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

評論

0/150

提交評論