版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
作用域通信對(duì)象本講案例增加訪問(wèn)控制。增加已訪問(wèn)人數(shù)統(tǒng)計(jì)。根據(jù)分類(lèi)瀏覽電影列表。本講目標(biāo)掌握J(rèn)SP作用域通信對(duì)象的用法pageContext對(duì)象request對(duì)象session對(duì)象application對(duì)象掌握使用超鏈接傳遞參數(shù)作用域通信對(duì)象對(duì)象的生命周期和可訪問(wèn)性,稱(chēng)為作用域(scope)。作用域:page、request、session和application作用域通信對(duì)象:pageContext、request、session、application4個(gè)通信對(duì)象的常用的方法:publicvoidsetAttribute(Stringname,Objectvalue)。publicObjectgetAttribute(Stringname)。上網(wǎng)時(shí)遇到的訪問(wèn)控制系統(tǒng)如何判斷用戶已經(jīng)登錄?點(diǎn)擊立即下載,轉(zhuǎn)到登錄頁(yè)面如何實(shí)現(xiàn)訪問(wèn)控制系統(tǒng)如何保存不同用戶的登錄信息?JSP會(huì)話跟蹤機(jī)制,可以保存用戶的會(huì)話信息,即不同用戶保存不同的數(shù)據(jù)12用戶登錄進(jìn)注冊(cè)頁(yè)面保存該用戶的登錄信息進(jìn)入訪問(wèn)的頁(yè)面是否注冊(cè)用戶否是訪問(wèn)某頁(yè)面進(jìn)入登錄頁(yè)面進(jìn)入該頁(yè)面是否保存了該用戶登錄信息否是問(wèn)題流程圖會(huì)話跟蹤請(qǐng)求1響應(yīng)1請(qǐng)求n…………..服務(wù)器將唯一的會(huì)話對(duì)象和會(huì)話ID
分配給客戶端以跟蹤用戶響應(yīng)nWeb應(yīng)用服務(wù)器Session對(duì)象瀏覽器關(guān)閉,本次會(huì)話結(jié)束session是隱式對(duì)象,與瀏覽器一一對(duì)應(yīng),允許用戶存取會(huì)話狀態(tài)的信息session對(duì)象存儲(chǔ)會(huì)話的所有信息常用方法:voidsetAttribute(Stringkey,Objectvalue):以鍵/值的方式,將對(duì)象的值存到session中ObjectgetAttribute(Stringkey):根據(jù)名稱(chēng)獲取session中對(duì)象的值session.setAttribute("name","admin");Stringname=(String)session.getAttribute("name");訪問(wèn)控制可否用session完成?為電影銷(xiāo)售系統(tǒng)增加訪問(wèn)控制登錄才能訪問(wèn)后臺(tái)登錄按鈕的處理1、獲取輸入信息2、查詢數(shù)據(jù)庫(kù),判斷是否注冊(cè)3、如果已注冊(cè),session中保存登錄信息,并轉(zhuǎn)到后臺(tái)首頁(yè)后臺(tái)首頁(yè)(index.jsp)1、從session中提取該用戶信息2、如果存在,顯示首頁(yè)3、如果不存在,跳轉(zhuǎn)到登錄頁(yè)面已注冊(cè)123無(wú)登錄信息1、表users,存用戶名、密碼2、數(shù)據(jù)庫(kù)訪問(wèn)類(lèi),包含doLogin方法驗(yàn)證登錄3、登錄頁(yè)面(login.jsp)4、處理頁(yè)面(doLogin.jsp)<%//登錄驗(yàn)證UsersloginedUser=null;UsersDAOusersDAO=newUsersDAOImpl();loginedUser=usersDAO.doLogin(userName,passWord);if(loginedUser!=null){//已注冊(cè)
//會(huì)話中存放登錄信息
session.setAttribute("LOGINED_USER",loginedUser);
//轉(zhuǎn)到后臺(tái)首頁(yè)
response.sendRedirect(path+"/admin/admin.jsp");}else{
//轉(zhuǎn)到后臺(tái)登錄
response.sendRedirect(path+"/admin/login.jsp");}%>session中存放登錄信息增加訪問(wèn)控制后臺(tái)首頁(yè)面(admin.jsp)加入訪問(wèn)控制<%Usersuser=(Users)session.getAttribute("LOGINED_USER");if(user==null){response.sendRedirect(request.getContextPath()+"/admin/login.jsp");}%>不存在登錄信息,轉(zhuǎn)登錄頁(yè)面增加訪問(wèn)控制測(cè)試,步驟如下:1、輸入U(xiǎn)RL,訪問(wèn)后臺(tái)頁(yè)面2、通過(guò)登錄頁(yè)面進(jìn)入頁(yè)面3、重開(kāi)一個(gè)窗口,訪問(wèn)后臺(tái)頁(yè)面每個(gè)步驟發(fā)生什么結(jié)果?為什么?增加訪問(wèn)控制問(wèn)題使用include指令許多頁(yè)面需加入訪問(wèn)控制代碼。如何避免冗余代碼?代碼寫(xiě)入單獨(dú)的JSP,通過(guò)include指令引用,降低代碼冗余,便于修改共性內(nèi)容提問(wèn)使用include指令創(chuàng)建驗(yàn)證文件checkSession.jspadmin.jsp引用驗(yàn)證文件<%@pageimport=".systop.jspt06.entity.Users"pageEncoding="UTF-8"%><%//如果會(huì)話中不存在登錄信息,轉(zhuǎn)到登錄頁(yè)面Usersuser=(Users)session.getAttribute("LOGINED_USER");if(user==null){response.sendRedirect(request.getContextPath()+"/admin/login.jsp");}%><%@includefile="checkSession.jsp
"%>小結(jié)登錄頁(yè)面login.html處理登錄頁(yè)面doLogin.jsp如果用戶名為admin,把用戶名存儲(chǔ)在session中,轉(zhuǎn)入index.jsp否則轉(zhuǎn)入login.html頁(yè)面admin.jsp如果session中沒(méi)有該用戶信息,轉(zhuǎn)入login.html否則顯示歡迎信息試一試為電影銷(xiāo)售系統(tǒng)增加已訪問(wèn)人數(shù)統(tǒng)計(jì)升級(jí)系統(tǒng),增加已訪問(wèn)人數(shù)統(tǒng)計(jì)功能,要求如下:點(diǎn)擊已訪問(wèn)人數(shù)統(tǒng)計(jì):顯示已訪問(wèn)人數(shù),以及訪問(wèn)者的登錄名稱(chēng)登錄處理頁(yè)面(doLogin.jsp)1、在session中保存該用戶信息2、在全局范圍內(nèi)保存該用戶信息1243增加訪問(wèn)人數(shù)統(tǒng)計(jì)修改doLogin.jsp,把已登錄用戶保存在application。if(loginedUser!=null){//已注冊(cè)//存到會(huì)話中session.setAttribute("LOGINED_USER",loginedUser);ListloginedUsers=newArrayList();//定義對(duì)象,存已訪問(wèn)用戶列表//取出已訪問(wèn)用戶列表if(application.getAttribute("LOGINED_USER")!=null){loginedUsers=(List)application.getAttribute("LOGINED_USER");}//新登錄用戶信息存入已訪問(wèn)用戶列表loginedUsers.add(loginedUser);//更新全局范圍中的已訪問(wèn)用戶列表application.setAttribute("LOGINED_USER",loginedUsers);//重定向到后臺(tái)管理首頁(yè)response.sendRedirect(path+"/admin/admin.jsp");}
更新全局范圍內(nèi)訪問(wèn)者列表從全局范圍內(nèi)取出原有的訪問(wèn)者列表增加已訪問(wèn)人數(shù)統(tǒng)計(jì)左導(dǎo)航頁(yè)面left.jsp的創(chuàng)建右邊已訪問(wèn)人數(shù)頁(yè)面countLoginedUsers.jsp的創(chuàng)建。
countLoginedUsers.jsp片斷<%ListloginedUsers=newArrayList();//訪問(wèn)者列表if(application.getAttribute("LOGINED_USER")!=null)loginedUsers=(List)application.getAttribute("LOGINED_USER");%>已經(jīng)有<%=loginedUsers.size()%>人訪問(wèn)過(guò)本網(wǎng)站!<br><br>他們是:<br><%
for(inti=0;i<loginedUsers.size();i++){ UsersloginedUser=(User)loginedUsers.get(i); out.print(loginedUser.getUserName()); out.print("<br/>");}%>
從全局范圍內(nèi)取值逐行顯示每個(gè)訪問(wèn)者測(cè)試已訪問(wèn)人數(shù)統(tǒng)計(jì):1、通過(guò)登錄進(jìn)入系統(tǒng),查看人數(shù)統(tǒng)計(jì)2、重開(kāi)一個(gè)窗口,用不同的用戶登入系統(tǒng),查看人數(shù)統(tǒng)計(jì)每個(gè)步驟發(fā)生什么結(jié)果?為什么?增加已訪問(wèn)人數(shù)統(tǒng)計(jì)問(wèn)題application對(duì)象application類(lèi)似于“全局變量”,實(shí)現(xiàn)用戶間的數(shù)據(jù)共享常用方法:voidsetAttribute(Stringkey,Objectvalue):鍵/值方式ObjectgetAttribute(Stringkey):根據(jù)鍵獲取對(duì)象的值application.setAttribute("LOGINED_USER",newArrayList());if(application.getAttribute("LOGINED_USER")!=null){ListloginedUsers=(List)application.getAttribute("LOGINED_USER");}根據(jù)分類(lèi)瀏覽電影列表要求:前臺(tái)首頁(yè)顯示電影分類(lèi)點(diǎn)擊電影分類(lèi)顯示電影列表“動(dòng)作”對(duì)應(yīng)的超鏈接“動(dòng)作”類(lèi)的電影列表點(diǎn)擊“動(dòng)作”前臺(tái)頁(yè)面(index.jsp)使用DIV把頁(yè)面分為n塊左下欄顯示電影分類(lèi),引用showMoviesType.jsp中下欄顯示電影列表,引用moviesList.jsp中下欄左下欄根據(jù)分類(lèi)瀏覽電影列表showMoviesType.jsp
<%//從數(shù)據(jù)庫(kù)中獲取電影分類(lèi),并逐行顯示TypeDAOtypeDAO=newTypeDAOImpl();//創(chuàng)建電影分類(lèi)數(shù)據(jù)庫(kù)訪問(wèn)類(lèi)對(duì)象Listlist=typeDAO.search();//查詢電影分類(lèi)列表//循環(huán)遍歷電影分類(lèi)列表在頁(yè)面顯示for(inti=0;i<list.size();i++){Typetype=(Type)list.get(i);%>
<imgsrc="images/arr.gif"> <ahref="index.jsp?typeID=<%=type.getTypeID()%>"class="menu">
<%=type.getTypeName()%>
</a><br><br><%
}%>超鏈接中傳遞參數(shù):電影分類(lèi)的ID根據(jù)分類(lèi)瀏覽電影列表moviesList.jsp根據(jù)分類(lèi)的ID,顯示對(duì)應(yīng)的電影列表<%
StringsTypeID=request.getParameter("typeID");if(sTypeID!=null){inttypeID=Integer.parseInt(sTypeID);
//根據(jù)分類(lèi)ID獲取電影列表,暫不分頁(yè)
MoviesDAOmoviesDAO=newMoviesDAOImpl();ListmoviesList=moviesDAO.search(1,typeID);
if(moviesList!=null&&moviesList.size()!=0){
for(inti=0;i<moviesList.size();i++){Moviesmovie=(Movies)moviesList.get(i);%>處理URL的請(qǐng)求參數(shù):得到分類(lèi)ID根據(jù)分類(lèi)瀏覽電影列表四個(gè)作用域通信對(duì)象的區(qū)別四個(gè)作用域計(jì)數(shù)結(jié)果如圖所示。四個(gè)作用域通信對(duì)象的區(qū)別得出結(jié)論:1. pageContext里的變量沒(méi)法從scope1.jsp傳遞到scope2.jsp。頁(yè)面跳轉(zhuǎn),變量就不見(jiàn)了。2. request里的變量可以跨越forward
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市公共交通車(chē)輛運(yùn)營(yíng)管理合同3篇
- 2025年度柴油市場(chǎng)分析與預(yù)測(cè)服務(wù)合同范本4篇
- 專(zhuān)業(yè)設(shè)備銷(xiāo)售協(xié)議模板集(2024版)版
- 2025年廠區(qū)綠化生態(tài)教育推廣與培訓(xùn)服務(wù)協(xié)議4篇
- 2024年起重機(jī)研發(fā)與購(gòu)銷(xiāo)合作項(xiàng)目合同范本3篇
- 二零二四家居建材店員工勞動(dòng)合同模板3篇
- 2025年度智能機(jī)器人技術(shù)研發(fā)合作協(xié)議4篇
- 2024版企業(yè)技術(shù)改造借款的合同范本
- 二零二五版醫(yī)療設(shè)備采購(gòu)與租賃合同范本3篇
- 2024年04月吉林銀行總行投資銀行部2024年社會(huì)招考1名負(fù)責(zé)人筆試歷年參考題庫(kù)附帶答案詳解
- GB/T 6913-2008鍋爐用水和冷卻水分析方法磷酸鹽的測(cè)定
- GB/T 18717.2-2002用于機(jī)械安全的人類(lèi)工效學(xué)設(shè)計(jì)第2部分:人體局部進(jìn)入機(jī)械的開(kāi)口尺寸確定原則
- 教案:第三章 公共管理職能(《公共管理學(xué)》課程)
- 中國(guó)文化概論(第三版)全套課件
- 117-鋼結(jié)構(gòu)工程質(zhì)量常見(jiàn)問(wèn)題與管控措施
- SHS5230三星指紋鎖中文說(shuō)明書(shū)
- 諾和關(guān)懷俱樂(lè)部對(duì)外介紹
- 保定市縣級(jí)地圖PPT可編輯矢量行政區(qū)劃(河北省)
- 新蘇教版科學(xué)六年級(jí)下冊(cè)全冊(cè)教案(含反思)
- 供方注冊(cè)指南-ZTE
- 真心英雄合唱歌詞
評(píng)論
0/150
提交評(píng)論