版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章 JavaBean,教學(xué)目標(biāo): 了解Servlet技術(shù) 掌握Servlet技術(shù)的常規(guī)應(yīng)用 掌握Servlet的配置方法 熟練運(yùn)用Servlet過(guò)濾器,4.1 工作場(chǎng)景,什么是Servlet,用 Java 編寫的服務(wù)器端程序 Servlet有一套專門的API Servlet運(yùn)行于Web容器中,執(zhí)行服務(wù)器端處理 Servlet可以接受/響應(yīng)用戶的請(qǐng)求,4.2 Servlet體系結(jié)構(gòu),Servlet使用以下包中的類和接口: javax.servlet.http 稱為HttpServlet-HTTP Servlet,Servlet必須實(shí)現(xiàn) javax.servlet.Servlet 接口 通過(guò)擴(kuò)
2、展GenericServlet類或 HttpServlet類實(shí)現(xiàn),HttpServlet類,1、HttpServlet類是一個(gè)抽象類 2、從該類派生出一個(gè)子類來(lái)實(shí)現(xiàn)一個(gè)HttpServlet 3、請(qǐng)求和響應(yīng)都發(fā)送到Servlet中的service方法,service方法可以細(xì)分為:doGet doPost 4、在HttpServlet的子類中,經(jīng)常重載以下方法之一 1 :doGet 2 :doPost 5、在Html表單提交數(shù)據(jù)時(shí),使用的最多的是Post而非Get,4.2 Servlet程序結(jié)構(gòu),protected void doGet(HttpServletRequest request,
3、HttpServletResponse response) throws ServletException, IOException this.doPost(request, response); / doPost方法,設(shè)置響應(yīng)編碼類型為GB2312,并向客戶端輸出消息 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setCharacterEncoding(GB2312); PrintWri
4、ter out = response.getWriter(); out.println(“一個(gè)簡(jiǎn)單的Servlet程序,此時(shí)調(diào)用的doGet或doPost方法!); ,4.2 Servlet程序結(jié)構(gòu),運(yùn)行結(jié)果,4.2 Servlet程序結(jié)構(gòu),doPost方法 doPost方法用于客戶端把數(shù)據(jù)傳送到服務(wù)器。它可以 用隱藏表單域隱式的向服務(wù)端發(fā)送任何數(shù)據(jù)。 doGet方法 doGet方法用于獲取服務(wù)器信息,并將其作為響應(yīng)返 回給客戶端。通常,直接訪問(wèn)Servlet的URL時(shí),一般使 用doGet方法。它在URL里顯式地向Servlet傳送數(shù)據(jù),比 如提交認(rèn)證信息時(shí),可以直接在瀏覽器URL里看到用戶
5、 名和密碼,從而帶來(lái)系統(tǒng)的安全問(wèn)題。,4.3處理HTTP POST/GET請(qǐng)求,doGet方法和doPost方法分別對(duì)應(yīng)HTTP協(xié)議的GET和POST請(qǐng)求方法,F(xiàn)orm表單通過(guò)設(shè)置Method屬性來(lái)設(shè)置請(qǐng)求方法(Method屬性可以設(shè)置為Get或者Post)。,4.3.1 讀取表單參數(shù),/ 讀取表單參數(shù) String userType = request.getParameter(rdbUser); String username = request.getParameter(“txtUsername”); String password = request.getParameter(txtP
6、assword);,顯示表單提交的信息,Protected void dopost() if (userType.equals(1)userType=學(xué)生; else if(userType.equals(2)userType=教師; else userType=管理員; /設(shè)置響應(yīng)的內(nèi)容類型 response.setCharacterEncoding(utf-8); /設(shè)置響應(yīng)的編碼類型 response.setContentType(text/html); PrintWriter out = response.getWriter(); /顯示認(rèn)證信息 out.println(客戶端認(rèn)證請(qǐng)求
7、的相關(guān)信息:); out.println(,4.3.1 讀取表單參數(shù),運(yùn)行結(jié)果,4.3.2處理無(wú)效參數(shù),用戶驗(yàn)證時(shí)提交參數(shù)要求: 用戶名(txtUsername)該屬性不能為空 用戶密碼(txtPassword)該屬性不能為空 用戶身份(rdbUser)該屬性在錄入表單中有默認(rèn)值,故不會(huì)出現(xiàn)無(wú)效值,?,4.3.2處理無(wú)效參數(shù),4.3.2處理無(wú)效參數(shù),運(yùn)行結(jié)果,4.3.3共享JavaBean,? 在歡迎頁(yè)面中獲取用戶的驗(yàn)證信息, 針對(duì)不同的用戶,顯示不同歡迎信息。 歡迎信息顯示要求: 顯示用戶登錄時(shí)所使用的用戶名 顯示成功登錄的用戶的身份,4.3.3共享JavaBean,4.3.3共享JavaB
8、ean,4.3.3共享JavaBean,運(yùn)行結(jié)果,4.3.4 轉(zhuǎn)發(fā)和重定向客戶請(qǐng)求,? 用戶使用不同的身份登錄,具有不同的用戶 權(quán)限課績(jī)管理系統(tǒng)權(quán)限要求: 管理員用戶訪問(wèn)admin.jsp相關(guān)的內(nèi)容 教師用戶訪問(wèn)teacher.jsp相關(guān)的內(nèi)容 學(xué)生訪問(wèn)student.jsp相關(guān)的內(nèi)容 非上述三種身份,不能訪問(wèn)本系統(tǒng),4.3.4 轉(zhuǎn)發(fā)和重定向客戶請(qǐng)求,4.3.4 轉(zhuǎn)發(fā)和重定向客戶請(qǐng)求,運(yùn)行結(jié)果,4.4會(huì)話管理,會(huì)話(Session)是指在一段時(shí)間內(nèi),單個(gè)客戶與Web服務(wù)器的一連串的交互過(guò)程。 會(huì)話跟蹤 Cookies URL Rewriting 隱藏表單域,4.4.1 會(huì)話跟蹤(Session
9、的應(yīng)用),request對(duì)象的方法得到HttpSession對(duì)象: 1:public HttpSession getSession (Boolean create); 2:public HttpSession getSession();,4.4.2 Cookie的應(yīng)用,Cookie的格式實(shí)際上是一段純文本信息 由服務(wù)器隨著網(wǎng)頁(yè)一起發(fā)送到客戶端 并保存在客戶端硬盤中指定的目錄的 服務(wù)器讀取Cookie的時(shí)候, 只能夠讀取到這個(gè)服務(wù)器相關(guān)的信息,Cookie cookie=new Cookie(username,“QY); / 設(shè)置Cookie的存活時(shí)間為30分鐘 cookie.setMaxAge
10、(30*60); / 寫入客戶端硬盤 response.addCookie(cookie); out.print(寫Cookie完成);,4.4.3 URL Rewriting,如果用戶的瀏覽器不支持Cookie,或者用戶禁用了Cookie,將不能使用Cookie來(lái)追蹤所記錄的Session信息。此時(shí)可以使用URL重寫的方法,向URL中插入Session ID,來(lái)跟蹤 Session信息。,4.4.4 隱藏表單域,在課績(jī)管理系統(tǒng)/login.jsp中添加隱藏表單字段,保存Session ID實(shí)現(xiàn)會(huì)話跟蹤: ,4.5 使用Servlet過(guò)濾器,Servlet過(guò)濾器是小型的Web組件,可以用來(lái)驗(yàn)證
11、客戶是否來(lái)自可信的網(wǎng)絡(luò);可以驗(yàn)證客戶是否已經(jīng)登錄;可以記錄系統(tǒng)日志等。,創(chuàng)建過(guò)濾器,4.5 使用Servlet過(guò)濾器,4.5 使用Servlet過(guò)濾器,成功創(chuàng)建過(guò)濾器后,還需要在應(yīng)用中進(jìn)行相關(guān)部署: 配置web.xml文件:,4.6 Servlet異常處理,在Servlet中出現(xiàn)異常時(shí),可以采取3種方法進(jìn)行處理: 在try.catch語(yǔ)句 catch語(yǔ)句塊中直接向用戶顯示一個(gè)錯(cuò)誤信息的頁(yè)面。 在try.catch語(yǔ)句 catch語(yǔ)句塊中將錯(cuò)誤轉(zhuǎn)發(fā)到一個(gè)專門用于錯(cuò)誤處理的Servlet或JSP頁(yè)面中。 在web.xml中指定進(jìn)行處理。,4.6 Servlet異常處理,1、創(chuàng)建錯(cuò)誤提示頁(yè)面:,4.6 Servlet異常處理,2、配置web.xml指定錯(cuò)誤頁(yè)面:,4.6 Servlet異常處理,4.
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年生物質(zhì)能發(fā)電項(xiàng)目設(shè)計(jì)與施工合同
- 2024年股權(quán)轉(zhuǎn)讓細(xì)化協(xié)議
- 2024年耐磨輸送帶購(gòu)銷合作合同版B版
- 2024年股權(quán)質(zhì)押協(xié)議范本一
- 2024年研發(fā)外包保密協(xié)議
- 2024明星代言協(xié)議書:年度明星代言服裝品牌合作協(xié)議3篇
- 2024年科幻微電影拍攝制作與特效研發(fā)合同3篇
- 2024正規(guī)蘋果產(chǎn)品包裝與運(yùn)輸服務(wù)合同范本3篇
- 2024年牲畜屠宰企業(yè)收購(gòu)合同書樣本3篇
- 2024某餐飲企業(yè)與某食品加工廠關(guān)于食品加工的長(zhǎng)期合同
- 江西省贛州市2023-2024學(xué)年高一上學(xué)期期末考試化學(xué)試題 附答案
- 消化道出血護(hù)理常規(guī)課件
- 2024年物流運(yùn)輸公司全年安全生產(chǎn)工作計(jì)劃例文(4篇)
- 貴州省銅仁市2023-2024學(xué)年高二上學(xué)期期末質(zhì)量監(jiān)測(cè)試題 地理 含答案
- 2024-2025學(xué)年二年級(jí)語(yǔ)文上冊(cè)期末非紙筆試卷二(統(tǒng)編版)
- 糖尿病老年患者健康指導(dǎo)
- 2024年城市更新項(xiàng)目回遷安置合同
- 期末卷(一)-2023-2024學(xué)年高一年級(jí)地理上學(xué)期高頻考題期末測(cè)試卷(江蘇專用)(原卷版)
- 外研版(三起)(2024)小學(xué)三年級(jí)上冊(cè)英語(yǔ)全冊(cè)教案
- 初一《皇帝的新裝》課本劇劇本
- 幼兒園意識(shí)形態(tài)風(fēng)險(xiǎn)點(diǎn)排查報(bào)告
評(píng)論
0/150
提交評(píng)論