




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于基于JSPJSP的的WebWeb應用開發應用開發作用域通信對象本講案例本講案例 增加訪問控制。增加訪問控制。 增加已訪問人數統計。增加已訪問人數統計。 根據分類瀏覽電影列表。根據分類瀏覽電影列表。本講目標本講目標 掌握掌握JSP作用域通信對象的用法作用域通信對象的用法pageContext對象對象request對象對象session對象對象application對象對象 掌握使用超鏈接傳遞參數掌握使用超鏈接傳遞參數作用域通信對象作用域通信對象 對象的生命周期和可訪問性,稱為作用域(對象的生命周期和可訪問性,稱為作用域(scope)。)。 作用域:作用域:page、request、sessi
2、on 和和 application 作用域通信對象:作用域通信對象:pageContext、 request、 session、application 4個通信對象的常用的方法:個通信對象的常用的方法: public void setAttribute(String name, Object value) 。 public Object getAttribute(String name ) 。上網時遇到的訪問控制上網時遇到的訪問控制 系統如何判斷用戶已經登錄?系統如何判斷用戶已經登錄?點擊立即下載,點擊立即下載, 轉到登錄頁面轉到登錄頁面 如何實現訪問控制如何實現訪問控制系統如何保存不同用戶的
3、登錄信息?系統如何保存不同用戶的登錄信息?JSP會話跟蹤機制,可以保存用戶的會話信息,即不同用戶保存不會話跟蹤機制,可以保存用戶的會話信息,即不同用戶保存不同的數據同的數據 12用戶登錄用戶登錄進注冊頁面進注冊頁面保存該用戶的保存該用戶的登錄信息登錄信息進入訪問的進入訪問的頁面頁面是否注冊用戶是否注冊用戶否否是是訪問某頁面訪問某頁面進入登錄頁面進入登錄頁面進入該頁面進入該頁面是否保存了該用是否保存了該用戶登錄信息戶登錄信息否否是是 流程圖流程圖 會話跟蹤會話跟蹤請求 1響應 1請求 n.服務器將唯一的會話對象和會話 ID 分配給客戶端以跟蹤用戶響應 nWeb應用應用服務器服務器Session對
4、象對象瀏覽器關閉,瀏覽器關閉,本次會話結束本次會話結束session是隱式對象,是隱式對象,與瀏覽器一一對應,允與瀏覽器一一對應,允許用戶存取會話狀態的許用戶存取會話狀態的信息信息session對象對象 存儲會話的所有信息存儲會話的所有信息 常用方法:常用方法: void setAttribute(String key, Object value):以鍵:以鍵/值的方式,值的方式,將對象的值存到將對象的值存到session中中 Object getAttribute(String key):根據名稱獲取:根據名稱獲取session中對象中對象的值的值session.setAttribute(n
5、ame, admin);String name = (String) session.getAttribute(name);訪問控制可否用訪問控制可否用session完成?完成? 為電影銷售系統增加訪問控制為電影銷售系統增加訪問控制登錄才能訪問后臺登錄才能訪問后臺登錄按鈕的處理登錄按鈕的處理1、獲取輸入信息、獲取輸入信息2、查詢數據庫,判斷是否注冊、查詢數據庫,判斷是否注冊3、如果已注冊,、如果已注冊,session中保存登錄中保存登錄信息,并轉到后臺首頁信息,并轉到后臺首頁后臺首頁后臺首頁(index.jsp)1、從、從session中提取該用戶信息中提取該用戶信息2、如果存在,顯示首頁、如
6、果存在,顯示首頁3、如果不存在,跳轉到登錄頁面、如果不存在,跳轉到登錄頁面 已已注注冊冊123無登錄信息無登錄信息 1、表、表users,存用戶名、密碼,存用戶名、密碼 2、數據庫訪問類,包含、數據庫訪問類,包含doLogin方法驗證登錄方法驗證登錄 3、登錄頁面(、登錄頁面(login.jsp) 4、處理頁面(、處理頁面(doLogin.jsp)session中存放中存放登錄信息登錄信息增加訪問控制增加訪問控制 后臺首頁面后臺首頁面(admin.jsp) 加入訪問控制加入訪問控制不存在登錄信息,轉登錄頁面不存在登錄信息,轉登錄頁面增加訪問控制增加訪問控制 測試,步驟如下:測試,步驟如下: 1
7、、輸入、輸入URL,訪問后臺頁面,訪問后臺頁面 2、通過登錄頁面進入頁面、通過登錄頁面進入頁面 3、重開一個窗口,訪問后臺頁面、重開一個窗口,訪問后臺頁面每個步驟發生什么結果?為什么?每個步驟發生什么結果?為什么?增加訪問控制增加訪問控制使用使用include指令指令許多頁面需加入訪問控制代碼。如何避免冗余代碼?許多頁面需加入訪問控制代碼。如何避免冗余代碼?代碼寫入單獨的代碼寫入單獨的JSP,通過,通過include指令引用,指令引用,降低代碼冗余,便于修改共性內容降低代碼冗余,便于修改共性內容 使用使用include指令指令 創建驗證文件創建驗證文件 checkSession.jsp adm
8、in.jsp引用驗證文件引用驗證文件小結小結 登錄頁面登錄頁面login.html 處理登錄頁面處理登錄頁面doLogin.jsp 如果用戶名為如果用戶名為admin,把用戶名存儲在,把用戶名存儲在session中,轉入中,轉入index.jsp 否則轉入否則轉入login.html 頁面頁面admin.jsp 如果如果session中沒有該用戶信息,轉入中沒有該用戶信息,轉入login.html 否則顯示歡迎信息否則顯示歡迎信息為電影銷售系統增加已訪問人數統計為電影銷售系統增加已訪問人數統計 升級系統,增加已訪問人數統計功能,要求如下:升級系統,增加已訪問人數統計功能,要求如下: 點擊已訪問
9、人數統計:顯示已訪問人數,以及訪問者的登錄名稱點擊已訪問人數統計:顯示已訪問人數,以及訪問者的登錄名稱登錄處理頁面登錄處理頁面(doLogin.jsp)1、在、在session中保存該用戶信息中保存該用戶信息2、在全局范圍內保存該用戶信息、在全局范圍內保存該用戶信息1243增加訪問人數統計增加訪問人數統計 修改修改doLogin.jsp,把已登錄用戶保存在,把已登錄用戶保存在application。 if(loginedUser != null) /已注冊已注冊 /存到會話中存到會話中 session.setAttribute(LOGINED_USER,loginedUser); List l
10、oginedUsers = new ArrayList(); /定義對象,存已訪問用戶列表定義對象,存已訪問用戶列表 /取出已訪問用戶列表取出已訪問用戶列表 if (application.getAttribute(LOGINED_USER) != null) loginedUsers = (List) application.getAttribute(LOGINED_USER); /新登錄用戶信息存入已訪問用戶列表新登錄用戶信息存入已訪問用戶列表 loginedUsers.add(loginedUser); /更新全局范圍中的已訪問用戶列表更新全局范圍中的已訪問用戶列表 applicatio
11、n.setAttribute(LOGINED_USER, loginedUsers); /重定向到后臺管理首頁重定向到后臺管理首頁 response.sendRedirect(path + /admin/admin.jsp); 更新全局范圍內訪更新全局范圍內訪問者列表問者列表從全局范圍內取出原從全局范圍內取出原有的訪問者列表有的訪問者列表增加已訪問人數統計增加已訪問人數統計 左導航頁面左導航頁面left.jsp的創建的創建 右邊已訪問人數頁面右邊已訪問人數頁面countLoginedUsers.jsp的創建。的創建。 - countLoginedUsers.jsp片斷片斷-已經有已經有人訪問過
12、本網站人訪問過本網站!他們是:他們是:% for (int i = 0; i loginedUsers.size(); i+) Users loginedUser= (User) loginedUsers.get(i);out.print(loginedUser.getUserName();out.print(); % 從全局范圍內取值從全局范圍內取值逐行顯示每個訪問者逐行顯示每個訪問者 測試已訪問人數統計:測試已訪問人數統計: 1、通過登錄進入系統,查看人數統計、通過登錄進入系統,查看人數統計 2、重開一個窗口,用不同的用戶登入系統,查看人數統計、重開一個窗口,用不同的用戶登入系統,查看人數
13、統計每個步驟發生什么結果?為什么?每個步驟發生什么結果?為什么?增加已訪問人數統計增加已訪問人數統計application對象對象 application類似于類似于“全局變量全局變量”,實現用戶間的數據共,實現用戶間的數據共享享 常用方法:常用方法: void setAttribute(String key, Object value):鍵:鍵/值方式值方式 Object getAttribute(String key):根據鍵獲取對象的值:根據鍵獲取對象的值application.setAttribute(LOGINED_USER, new ArrayList();if (applicat
14、ion.getAttribute(LOGINED_USER) != null) List loginedUsers = (List) application.getAttribute(LOGINED_USER);根據分類瀏覽電影列表根據分類瀏覽電影列表 要求:要求: 前臺首頁顯示電影分類前臺首頁顯示電影分類 點擊電影分類顯示電影列表點擊電影分類顯示電影列表“動作動作”對應的超鏈對應的超鏈接接“動作動作”類的電影列類的電影列表表點擊點擊“動作動作” 前臺頁面(前臺頁面(index.jsp)使用使用DIV把頁面分為把頁面分為n塊塊左下欄顯示電影分類,引用左下欄顯示電影分類,引用showMovies
15、Type.jsp中下欄顯示電影列表,引用中下欄顯示電影列表,引用moviesList.jsp中下欄中下欄左下欄左下欄根據分類瀏覽電影列表根據分類瀏覽電影列表 showMoviesType.jsp %/從數據庫中獲取電影分類,并逐行顯示從數據庫中獲取電影分類,并逐行顯示TypeDAO typeDAO = new TypeDAOImpl(); /創建電影分類數據庫訪問類對象創建電影分類數據庫訪問類對象List list = typeDAO.search(); /查詢電影分類列表查詢電影分類列表/循環遍歷電影分類列表在頁面顯示循環遍歷電影分類列表在頁面顯示for(int i=0; i &nb
16、sp; a href=index.jsp?typeID= class=menu 超鏈接中傳遞參數:超鏈接中傳遞參數:電影分類的電影分類的ID根據分類瀏覽電影列表根據分類瀏覽電影列表 moviesList.jsp 根據分類的根據分類的ID,顯示對應的電影列表,顯示對應的電影列表% String sTypeID = request.getParameter(typeID);if (sTypeID != null) int typeID = Integer.parseInt(sTypeID); /根據分類根據分類ID獲取電影列表獲取電影列表,暫不分頁暫不分頁 MoviesDAO moviesDAO
17、= new MoviesDAOImpl(); List moviesList = moviesDAO.search(1, typeID); if(moviesList != null & moviesList.size() != 0) for(int i=0; i處理處理URL的請求參數:的請求參數:得到分類得到分類ID根據分類瀏覽電影列表根據分類瀏覽電影列表四個作用域通信對象的區別四個作用域通信對象的區別 四個作用域計數結果如圖所示。四個作用域計數結果如圖所示。四個作用域通信對象的區別四個作用域通信對象的區別 得出結論:得出結論: 1.pageContext里的變量沒法從里的變量沒法
18、從scope1.jsp傳遞到傳遞到scope2.jsp。頁面跳轉,變量就不見了。頁面跳轉,變量就不見了。 2.request里的變量可以跨越里的變量可以跨越forward前后的兩頁(如果前后的兩頁(如果redirect則不能,會生成一個新的則不能,會生成一個新的request)。但是只要刷)。但是只要刷新頁面,變量重新計算。新頁面,變量重新計算。 3.session和和application里的變量一直在累加,再次重里的變量一直在累加,再次重啟瀏覽器,啟瀏覽器,session里的變量重新計算。里的變量重新計算。 4.application里的變量一直在累加,除非重啟里的變量一直在累加,除非重啟tomcat。小結小結創建創建JSP頁面頁面one.jsp設置一個超鏈接,鏈接至設置一個超鏈接,鏈接至two.jsp文件文件向向two.jsp傳遞一個參數,參數名為傳遞一個參數,參數名為param,其值為字符串,其值為字符串hello創建創建JSP頁面頁面two.jsp在該頁面中輸出參數的值在該頁面中輸出參數的值總結總結 啟動啟動IE窗口運行如下窗口運行如下J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區場地租賃合同
- 裝飾裝修施工協議合同
- 內河船舶光船租賃合同
- 數據保密協議合同
- 公寓承包裝修合同
- 勞務承包合同材料合同
- 售房房屋買賣合同
- 《北京的春節》課件-3
- 《列寧領導的社會主義革命與建設》急劇動蕩的現代世界課件-2
- 工地小件采購合同范本
- 2024年山東省公務員錄用考試《行測》真題及答案解析
- 4.1 時代的主題 課件-2024-2025學年高中政治統編版選擇性必修一當代國際政治與經濟
- 2024年中國高低壓電器開關柜市場調查研究報告
- 醫療質量和醫療安全培訓
- 作業活動風險分級管控清單
- 班級管理-形考任務2-國開-參考資料
- 黑龍江省哈爾濱市香坊區風華中學2024-2025學年九年級(五四學制)上學期10月月考語文試題
- 代理商和廠家拿貨合同范本
- 2024年公開招聘工作人員報名表
- 2024年繼續教育公需課考試題目及答案
- 隱私保護與數據安全合規性測試考核試卷
評論
0/150
提交評論