北大青鳥JSP教程大全(下).ppt_第1頁
北大青鳥JSP教程大全(下).ppt_第2頁
北大青鳥JSP教程大全(下).ppt_第3頁
北大青鳥JSP教程大全(下).ppt_第4頁
北大青鳥JSP教程大全(下).ppt_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、小腳本與表達式的綜合應(yīng)用6-6,第四步:編寫showFirstTitle.jsp 調(diào)用類FirstLeveTitleDbOpreation的方法,獲得FirstLevelTitle對象的集合 遍歷該集合,逐行輸出新聞一級標題的名稱,-代碼片斷- ,表達式,負責輸出各新聞一級標題的名稱,小腳本,負責方法調(diào)用、以及在循環(huán)中獲取數(shù)據(jù),完整代碼實現(xiàn),為什么需要方法聲明,-在JSP中格式化日期的代碼片斷- ,在JSP中格式化當前日期,日期顯示形式:yyyy年MM月dd日,在同一個JSP頁面中,如果需要在多個地方格式化日期, 如何簡化代碼?,在Java文件中,可以增加一個方法來解決 在JSP文件中,同樣可

2、以聲明方法,解決類似問題,如何實現(xiàn)方法聲明,方法聲明 JSP頁面中定義Java方法 語法:, 你好,ACCP!今天是 你好,BENET!今天是 ,現(xiàn)在可以在多處調(diào)用該方法了。,小結(jié) 4,編寫一個JSP頁面,實現(xiàn)根據(jù)一個人18位身份證顯示出生日的功能,要求把表達式、方法聲明和小腳本全部用到,完整代碼實現(xiàn),運行結(jié)果示意圖,總結(jié),請指出如下JSP頁面的錯誤, 輸出當前日期 你好,ACCP! 今天是 ,未使用import引入類,Thank you,使用JSP處理客戶端請求,第六章,回顧,列舉一些page指令的常用屬性,并說明它們的作用 在JSP文件中,有幾種輸出數(shù)值的方法(如:輸出10與30的乘積)?

3、分別怎樣表示?,預(yù)習檢查,使用JSP編程時,如何在服務(wù)器端獲得用戶在文本框中輸入的數(shù)值? 什么是JSP內(nèi)置對象?列舉一些常用的JSP內(nèi)置對象,并說明它們的作用,本章任務(wù),升級新聞發(fā)布系統(tǒng) 從頁面上添加新聞一級標題,并保存至數(shù)據(jù)庫中 從頁面上添加新聞二級標題,并保存至數(shù)據(jù)庫中,掌握Form表單的請求處理 掌握JavaScript頁面驗證與JSP的集成 掌握JSP常用內(nèi)置對象的用法 out對象 request對象 response對象,本章目標,為什么需要使用HTML表單,如何在服務(wù)器端獲得文本框中的數(shù)據(jù)?,HTML表單是與用戶交互信息的主要手段,回顧HTML表單 2-1,創(chuàng)建表單 一個表單至少應(yīng)

4、該包括說明性文字、表單控件、提交和重填按鈕等內(nèi)容 HTML表單標記說明了表單提交的方式和地點 創(chuàng)建表單控件 通過HTML表單的各種控件,用戶可以輸入文字信息,或者從選項中選擇,以及做提交的操作, 用戶名: 密碼: ,回顧HTML表單 2-2,method表示表單發(fā)送的方式, 分為兩種: get方式:將表單內(nèi)容經(jīng)過編碼之后 ,通過URL發(fā)送, 使用get方式發(fā)送時有255個字符的限制。 post方式:將表單的內(nèi)容通過http發(fā)送,post沒有字符長度的限制,可以在地址欄里看到,在地址欄看不到表單的提交信息,演示get方式與post方式的區(qū)別,表單處理的編程模式,用戶通過表單控件輸入并提交信息 J

5、SP獲得表單數(shù)據(jù),進行邏輯處理 JSP根據(jù)處理結(jié)果,轉(zhuǎn)向不同的結(jié)果頁面,JSP 1、獲得表單數(shù)據(jù) 2、進行邏輯處理 3、根據(jù)處理結(jié)果返回不同頁,郵箱主頁面,登陸失敗頁面,用戶名、密碼輸入正確,用戶名、密碼輸入錯誤,1,2,3,處理表單請求 5-1,升級新聞發(fā)布系統(tǒng),要求如下: 從頁面上添加新聞一級標題,并保存至數(shù)據(jù)庫中 如果保存成功,返回成功頁面 如果保存失敗,返回失敗頁面,saveFirstLevelTitle.jsp 1、獲得用戶輸入的一級標題 2、插入數(shù)據(jù)庫 3、根據(jù)保存結(jié)果返回不同的頁面,成功頁面,失敗頁面,保存成功,保存失敗,1,2,3,處理表單請求 5-2,創(chuàng)建一級標題的發(fā)布頁面(

6、createLevelOneTitle.jsp) 創(chuàng)建發(fā)布成功頁面(success.jsp) 創(chuàng)建發(fā)布失敗頁面(error.jsp),-發(fā)布頁面的代碼片斷- ,發(fā)布頁面代碼實現(xiàn),成功頁面代碼實現(xiàn),失敗頁面代碼實現(xiàn),處理表單請求 5-3,創(chuàng)建數(shù)據(jù)訪問類FirstLeveTitleDbOpreation 建立方法 getNewId():用來獲取新聞一級標題表中最大的ID,并對它加一,作為新的一級標題的ID 建立方法insertOneRecord(FirstLevelTitle fTitle):用來向數(shù)據(jù)庫中插入一條新聞一級標題,完整代碼實現(xiàn),處理表單請求 5-4,創(chuàng)建發(fā)布提交頁面 saveFirs

7、tLevelTitle.jsp, 0) request.getRequestDispatcher(“success.jsp) .forward(request, response); else request.getRequestDispatcher(error.jsp) .forward(request,response); %,獲取用戶輸入,邏輯處理,返回不同頁面,完整代碼實現(xiàn),處理表單請求 5-5,演示:添加新聞一級標題整體效果演示,JavaScript頁面驗證與JSP的集成,-代碼片斷- function checkOneTitle() if(form1.titlename.value

8、 =null | form1.titlename.value=) alert(請輸入一級標題!); return false; else return true; ,在發(fā)布頁面中增加JavaScript驗證:如果用戶沒有輸入新聞一級標題,就無法進行表單提交,通過onClick事件觸發(fā)checkOneTitle()方法,完整代碼實現(xiàn),什么是JSP內(nèi)置對象,JSP 內(nèi)置對象是 Web 容器創(chuàng)建的一組對象 JSP 內(nèi)置對象是可以直接在JSP頁面使用的對象 ,無需使用“new”獲取實例 JSP 內(nèi)置對象的名稱是 JSP 的保留字,常用內(nèi)置對象,request,response,out,applicat

9、ion,session,示例,沒有出現(xiàn)new關(guān)鍵字,但卻可以使用request對象,JSP內(nèi)置對象out,out對象用于向客戶端輸出數(shù)據(jù) out對象常用方法: print():在頁面中打印出字符串信息, ,JSP內(nèi)置對象request 4-1,request對象主要用于處理客戶端請求,request 對象,客戶端,請求,請求信息,JSP內(nèi)置對象request 4-2,request對象常用方法,JSP內(nèi)置對象request 4-3,編程實現(xiàn)ACCP學員的注冊功能 注冊信息包括:用戶名、密碼、你從哪里知道ACCP 頁面提交后,顯示學員輸入的數(shù)據(jù),1,2,JSP內(nèi)置對象request 4-4, 用

10、戶名 密碼 你從哪里知道ACCP 報刊 網(wǎng)絡(luò) 朋友推薦 電視 ,String channels = request.getParameterValues(channel); if (channels != null) for (int i = 0; i channels.length; i+) out.println(channelsi); ,request.setCharacterEncoding(GBK);,注冊頁面完整代碼實現(xiàn),注冊提交頁面完整代碼實現(xiàn),request.getParameter(“name”);,request.getParameter(pwd);,JSP內(nèi)置對象resp

11、onse 2-1,response對象用于響應(yīng)客戶請求并向客戶端輸出信息 response 對象常用方法 void sendRedirect (String location):將請求重新定位到一個不同的URL,response 對象,客戶端,響應(yīng),從服務(wù)器中檢索的信息,存儲信息,以在響應(yīng)客戶端請求時發(fā)送此信息,JSP內(nèi)置對象response 2-2,在首頁面(input.jsp)上輸入用戶名、密碼,提交至input2.jsp進行處理 如果輸入的用戶名、密碼都是sa,跳轉(zhuǎn)至歡迎頁面(welcome.jsp), 用戶名: 密碼: ,input.jsp,客戶端重新建立鏈接,跳轉(zhuǎn)至歡迎頁面,inpu

12、t2.jsp,處理表單請求進階 5-1,升級新聞發(fā)布系統(tǒng),要求如下: 從頁面上添加新聞二級標題,并保存至數(shù)據(jù)庫中 如果保存成功,返回成功頁面;保存失敗,返回失敗頁面,saveSecondLevelTitle.jsp 1、獲得用戶輸入 2、插入數(shù)據(jù)庫 3、根據(jù)保存結(jié)果返回不同頁面,成功頁面,失敗頁面,保存成功,保存失敗,在下拉框中列出所有一級標題,文件上載控件,1,2,3,處理表單請求進階 5-2,創(chuàng)建類SecondLevelTitle.java:負責存儲數(shù)據(jù) 創(chuàng)建類SecondLevelTitleDbOpreation.java:負責向數(shù)據(jù)庫中添加新聞二級標題,完整代碼實現(xiàn),完整代碼實現(xiàn),創(chuàng)建

13、表SecondLevelTitle,處理表單請求進階 5-3,創(chuàng)建新聞二級標題的發(fā)布頁面(createLevelTwoTitle.jsp),-代碼片斷- 0) for(int i=0;i ,這是文件上載控件,該控件帶有一個文本框和一個瀏覽按鈕,在下拉框中列出所有一級標題,完整代碼實現(xiàn),處理表單請求進階 5-4,創(chuàng)建發(fā)布提交頁面( saveSecondLevelTitle.jsp ),-代碼片斷- 0) request.getRequestDispatcher(success.jsp).forward(request,response); else request.getRequestDispa

14、tcher(error.jsp).forward(request, response); %,獲取用戶輸入,邏輯處理,返回不同頁面,完整代碼實現(xiàn),處理表單請求進階 5-5,演示:添加新聞二級標題整體效果演示,總結(jié) 2-1,編程實現(xiàn)如下頁面效果:,input.jsp,output.jsp,1,2,總結(jié) 2-2,input.jsp,output.jsp, 請選擇您的性別: 女 男 請選擇您喜歡的食物: 薯條 奶酪 ,String sex = request.getParameter(sex); String foods = request.getParameterValues(foods); St

15、ring foodStr=; if (foods != null) for (int i = 0; i 您的性別是: 您喜歡的食物是: ,單選框,復(fù)選框,Thank you,JSP頁面的訪問控制,第七章,回顧,使用JSP編程時,如何在服務(wù)器端獲得用戶在文本框中輸入的數(shù)值? 什么是JSP內(nèi)置對象?列舉一些常用的JSP內(nèi)置對象,并說明它們的作用,預(yù)習檢查,請說明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)的分級瀏覽,掌握訪問控制實現(xiàn)的流

16、程 掌握JSP內(nèi)置對象的用法 session對象 application對象 掌握include指令 掌握如何在超鏈接中傳遞參數(shù),本章目標,生活中的訪問控制,下載電子書時,系統(tǒng)會提示用戶登錄網(wǎng)站,點擊下載, 系統(tǒng)轉(zhuǎn)入登錄頁面,每次下載之前,系統(tǒng)如何判斷用戶是否已經(jīng)登錄?,如何實現(xiàn)訪問控制,系統(tǒng)如何保存不同用戶的登錄信息?,使用JSP會話跟蹤機制,可以維持每個用戶的會話信息,也就是為不同的用戶保存不同的數(shù)據(jù),1,2,訪問控制流程圖:,用戶登錄,進入用戶注冊頁面,系統(tǒng)保存該用戶的登錄信息,進入欲訪問的頁面,是否是注冊用戶,否,是,用戶直接訪問某個頁面,進入用戶登錄頁面,顯示該頁面內(nèi)容,系統(tǒng)是否保存

17、了該用戶登錄信息,否,是,瀏覽器關(guān)閉,本次會話結(jié)束,什么是會話,一個會話就是瀏覽器與服務(wù)器之間的一次通話,它包含瀏覽器與服務(wù)器之間的多次請求、響應(yīng)過程,瀏覽器,session對象,瀏覽器,session是JSP內(nèi)置對象,與瀏覽器一一對應(yīng),允許用戶存儲和提取會話狀態(tài)的信息,session對象,JSP內(nèi)置對象session,session對象用來存儲有關(guān)用戶會話的所有信息 session對象常用方法: void setAttribute(String key, Object value):以鍵/值的方式,將一個對象的值存放到session中 Object getAttribute(String k

18、ey):根據(jù)名稱去獲取session中存放對象的值,session.setAttribute(name, admin);,String name = (String) session.getAttribute(name);,訪問控制就是基于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ā)

19、布系統(tǒng)首頁面(index.jsp) 1、從session中提取該用戶信息 2、如果用戶信息存在,顯示首頁內(nèi)容 3、如果用戶信息不存在,跳轉(zhuǎn)到登錄頁面,用戶已注冊,session中無法提取到用戶信息,1,2,3,為新聞發(fā)布系統(tǒng)增加訪問控制 4-2,在news數(shù)據(jù)庫中創(chuàng)建表userinfo,負責存儲用戶名、密碼 創(chuàng)建類(User.java),負責存儲用戶名、密碼 創(chuàng)建登錄頁面(login.html) 創(chuàng)建登錄處理頁面(login.jsp),-登錄處理頁面的代碼片斷- ,在session中存放用戶登錄信息,完整代碼實現(xiàn),完整代碼實現(xiàn),完整代碼實現(xiàn),為新聞發(fā)布系統(tǒng)增加訪問控制 4-3,在新聞發(fā)布系統(tǒng)后

20、臺首頁面(index1.jsp)中加入登錄驗證,如果session中不存在該用戶的登錄信息,轉(zhuǎn)入登錄頁面,完整代碼實現(xiàn),為新聞發(fā)布系統(tǒng)增加訪問控制 4-4,訪問控制效果驗證,步驟如下: 直接在IE地址欄中輸入URL,訪問系統(tǒng)首頁面 通過登錄頁面進入系統(tǒng)首頁面 重新開啟一個IE窗口,直接訪問系統(tǒng)首頁面,每個步驟會發(fā)生什么樣的結(jié)果?為什么會產(chǎn)生這樣的結(jié)果?,每個session對象都與瀏覽器一一對應(yīng) 重新開啟一個瀏覽器,相當于重新創(chuàng)建一個session對象,演示:訪問控制效果驗證,include指令 2-1,除了首頁面,其它頁面中同樣需要加入登錄驗證, 有沒有辦法避免冗余代碼的出現(xiàn)?,可以將一些共性

21、的內(nèi)容寫入一個單獨的文件中,然后通過include指令引用該文件,從而降低代碼的冗余問題,也便于修改共性內(nèi)容,include指令 2-2,創(chuàng)建登錄驗證文件 checklogin.jsp 在后臺首頁面(index.jsp)中使用include指令引用登錄驗證文件, ,完整代碼實現(xiàn),小結(jié)1,創(chuàng)建登錄頁面login.html 提供用戶名輸入框、以及登錄按鈕 創(chuàng)建登錄處理頁面login.jsp 如果用戶名為sa,把用戶名存儲在session中,并跳轉(zhuǎn)進入index.jsp中 否則跳轉(zhuǎn)進入login.html頁面 創(chuàng)建頁面index.jsp 如果session中沒有該用戶信息,跳轉(zhuǎn)進入login.htm

22、l中 否則顯示歡迎信息,login.html,login.jsp,index.jsp,為新聞發(fā)布系統(tǒng)增加已訪問人數(shù)統(tǒng)計 4-1,升級新聞發(fā)布系統(tǒng),增加已訪問人數(shù)統(tǒng)計功能,具體要求如下: 左導航頁面中增加超鏈接:已訪問人數(shù)統(tǒng)計 已訪問人數(shù)統(tǒng)計頁面:顯示已訪問人數(shù),以及訪問者的登錄名稱,登錄處理頁面(login2.jsp) 1、在session中保存該用戶信息 2、在全局范圍內(nèi)保存該用戶信息 3、跳轉(zhuǎn)到新聞發(fā)布系統(tǒng)的首頁面,1,2,4,3,為新聞發(fā)布系統(tǒng)增加已訪問人數(shù)統(tǒng)計 4-2,創(chuàng)建登錄頁面(login2.html) 創(chuàng)建登錄處理頁面(login2.jsp),-登錄處理頁面代碼片斷- if (r

23、s.next() User logineduser = new User(name, pass); session.setAttribute(LOGINED_USER, logineduser); List loginedUsers = new ArrayList(); /訪問者列表 if (application.getAttribute(LOGINED_USER) != null) loginedUsers = (List) application.getAttribute(LOGINED_USER); loginedUsers.add(logineduser); /把新登錄用戶的信息存入

24、訪問者列表中 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)左導航欄中加入超鏈接(left.jsp) 創(chuàng)建已訪問人數(shù)統(tǒng)計頁面(showAllLoginedUsers.jsp),-已訪問人數(shù)統(tǒng)計頁面代碼片斷- 目前,有人已經(jīng)訪問過本網(wǎng)站! 訪問者的登錄名稱分別是: ); %,從全局范圍內(nèi)取出訪問者列表,逐行顯示每個訪問者的

25、登錄名稱,完整代碼實現(xiàn),完整代碼實現(xiàn),已訪問人數(shù)統(tǒng)計效果驗證,步驟如下: 通過登錄頁面進入系統(tǒng)首頁面,查看已訪問人數(shù)統(tǒng)計 重新開啟一個IE窗口,使用不同的用戶登錄進入首頁面,查看已訪問人數(shù)統(tǒng)計,每個步驟會發(fā)生什么樣的結(jié)果?為什么會產(chǎn)生這樣的結(jié)果?,演示:已訪問人數(shù)統(tǒng)計的效果驗證,為新聞發(fā)布系統(tǒng)增加已訪問人數(shù)統(tǒng)計 4-4,JSP內(nèi)置對象application,application類似于系統(tǒng)的“全局變量”,用于實現(xiàn)用戶之間的數(shù)據(jù)共享 application對象的常用方法: void setAttribute(String key, Object value):以鍵/值的方式,將一個對象的值存放到application中 Object getAttribute(String key):根據(jù)鍵去獲取application中存放對象的值,application.setAttribute(LOGINED_USER, new ArrayList();,if (application.getAttribute(LOGINED_USER) != null) List loginedUsers = (List) application.getAttribute(LO

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論