版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 20 2012 12 西安軟件服務(wù)外包學(xué)院西安軟件服務(wù)外包學(xué)院. .All rights reservedAll rights reserved. .Xian institute Service & Software Science Technology第三章第三章基于基于Servlet的會(huì)話跟蹤(一)的會(huì)話跟蹤(一)CISSST回顧 request、response 對(duì)象有哪些常用方法?web.xml文件的作用?如何理解Servlet的生命周期?實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)有幾種方式?它們之間有哪些區(qū)別?如何理解HTTP協(xié)議?CISSST預(yù)習(xí)檢查如何理解會(huì)話(session)?使用什么方法來(lái)獲得H
2、ttpSession對(duì)象?CISSST本章任務(wù)升級(jí) E-Book電子書(shū)店系統(tǒng)實(shí)現(xiàn)1.顯示書(shū)籍列表2.點(diǎn)擊書(shū)籍后顯示書(shū)籍詳細(xì)信息CISSST本章目標(biāo)理解會(huì)話跟蹤原理會(huì)獲取session對(duì)象會(huì)使用session對(duì)象進(jìn)行數(shù)據(jù)存取CISSSTHTTP協(xié)議1、HTTP協(xié)議有什么特點(diǎn)?協(xié)議有什么特點(diǎn)?無(wú)狀態(tài)無(wú)狀態(tài)訪問(wèn)訪問(wèn)訪問(wèn)訪問(wèn)我剛剛被訪問(wèn)了兩次,但是我我剛剛被訪問(wèn)了兩次,但是我不知道,是一個(gè)人訪問(wèn)了兩次?不知道,是一個(gè)人訪問(wèn)了兩次?還是兩個(gè)人各訪問(wèn)一次還是兩個(gè)人各訪問(wèn)一次HTTP協(xié)議不記錄用戶的信息協(xié)議不記錄用戶的信息2、 什么是無(wú)狀態(tài)什么是無(wú)狀態(tài) ?CISSSTHTTP是無(wú)狀態(tài)協(xié)議(3-1) 3、如何
3、顯示張三和李四分別訪問(wèn)某一網(wǎng)頁(yè)多如何顯示張三和李四分別訪問(wèn)某一網(wǎng)頁(yè)多 少次?少次?請(qǐng)求請(qǐng)求請(qǐng)求請(qǐng)求響應(yīng)響應(yīng)響應(yīng)響應(yīng)張三張三李四李四為了區(qū)分用戶,需要為了區(qū)分用戶,需要為不同用戶作登記為不同用戶作登記CISSSTHTTP是無(wú)狀態(tài)協(xié)議(3-2)購(gòu)買購(gòu)買2個(gè)商品個(gè)商品張三張三李四李四4、在線購(gòu)物系統(tǒng)中如何對(duì)用戶進(jìn)行區(qū)分?在線購(gòu)物系統(tǒng)中如何對(duì)用戶進(jìn)行區(qū)分?購(gòu)買購(gòu)買3個(gè)商品個(gè)商品一共購(gòu)買了一共購(gòu)買了5個(gè)商品,個(gè)商品,錢應(yīng)該從誰(shuí)的帳戶上扣呢?錢應(yīng)該從誰(shuí)的帳戶上扣呢?CISSSTHTTP是無(wú)狀態(tài)協(xié)議(3-3)Web程序能不能程序能不能像銀行卡號(hào)那樣,根據(jù)像銀行卡號(hào)那樣,根據(jù)卡號(hào)鎖定一個(gè)用戶呢?卡號(hào)鎖定一個(gè)用
4、戶呢?請(qǐng)求請(qǐng)求響應(yīng)響應(yīng)響應(yīng)的時(shí)候,由服務(wù)器響應(yīng)的時(shí)候,由服務(wù)器給我分配一個(gè)唯一給我分配一個(gè)唯一ID號(hào),號(hào),這樣就能區(qū)別不同的用戶了這樣就能區(qū)別不同的用戶了再次請(qǐng)求的時(shí)候,再次請(qǐng)求的時(shí)候,我?guī)е規(guī)е鳬D號(hào),號(hào),告訴服務(wù)器告訴服務(wù)器“我是誰(shuí)我是誰(shuí)”如何標(biāo)識(shí)用戶?如何標(biāo)識(shí)用戶?CISSST會(huì)話跟蹤(2-1)HttpSession對(duì)象對(duì)象服務(wù)器為每個(gè)會(huì)話創(chuàng)建一個(gè)服務(wù)器為每個(gè)會(huì)話創(chuàng)建一個(gè)HttpSession對(duì)象對(duì)象每個(gè)會(huì)話對(duì)象都有一個(gè)唯一的每個(gè)會(huì)話對(duì)象都有一個(gè)唯一的ID把用戶的數(shù)據(jù)保存在相應(yīng)的把用戶的數(shù)據(jù)保存在相應(yīng)的HttpSession對(duì)象內(nèi)對(duì)象內(nèi)第一次請(qǐng)求第一次請(qǐng)求響應(yīng)響應(yīng)服務(wù)器創(chuàng)建一個(gè)服務(wù)器創(chuàng)
5、建一個(gè)HttpSession對(duì)象對(duì)象并把該對(duì)象的并把該對(duì)象的ID返回給用戶返回給用戶同時(shí),服務(wù)器在內(nèi)存中開(kāi)辟同時(shí),服務(wù)器在內(nèi)存中開(kāi)辟一空間,用來(lái)保存該對(duì)象數(shù)據(jù)一空間,用來(lái)保存該對(duì)象數(shù)據(jù)把把ID發(fā)送給客戶端發(fā)送給客戶端第二次請(qǐng)求把第二次請(qǐng)求把ID一一起發(fā)送給服務(wù)器起發(fā)送給服務(wù)器根據(jù)根據(jù)ID號(hào)服務(wù)器尋找號(hào)服務(wù)器尋找內(nèi)存中相應(yīng)的數(shù)據(jù)內(nèi)存中相應(yīng)的數(shù)據(jù)CISSST會(huì)話跟蹤(2-2)請(qǐng)求請(qǐng)求 1請(qǐng)求請(qǐng)求 2請(qǐng)求請(qǐng)求 n.什么是會(huì)話什么是會(huì)話當(dāng)前瀏覽器與服務(wù)器間多次的請(qǐng)求、響應(yīng)關(guān)系,被稱作一個(gè)會(huì)話當(dāng)前瀏覽器與服務(wù)器間多次的請(qǐng)求、響應(yīng)關(guān)系,被稱作一個(gè)會(huì)話CISSST使用會(huì)話的事例public void doG
6、et(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpSession session = request.getSession(true); Object count = session.getAttribute(COUNTER);int counter = 0;if (count = null) counter = 1; /將第一次計(jì)數(shù)存入將第一次計(jì)數(shù)存入session session.setAttribute(COUNTER, new Int
7、eger(1); else counter = (Integer) count).intValue(); counter+;/計(jì)數(shù)加一計(jì)數(shù)加一/將計(jì)數(shù)存入將計(jì)數(shù)存入sessionsession.setAttribute(COUNTER, new Integer(counter); 取出取出session對(duì)對(duì)象內(nèi)存儲(chǔ)的值象內(nèi)存儲(chǔ)的值把數(shù)據(jù)存儲(chǔ)在把數(shù)據(jù)存儲(chǔ)在session對(duì)象內(nèi)對(duì)象內(nèi)記錄不同用戶的訪問(wèn)次數(shù)記錄不同用戶的訪問(wèn)次數(shù) 演示示例演示示例1:網(wǎng)頁(yè)計(jì)算網(wǎng)頁(yè)計(jì)算Counter.java獲得獲得session對(duì)象對(duì)象CISSST會(huì)話的創(chuàng)建和使用 public HttpSession getSess
8、ion(); public HttpSession getSession( boolean value); 會(huì)話的創(chuàng)建會(huì)話的創(chuàng)建使用使用HttpServletRequest 的的 getSession() 方法創(chuàng)建會(huì)話,方法創(chuàng)建會(huì)話, 語(yǔ)法如下:語(yǔ)法如下: 會(huì)話的使用會(huì)話的使用使用使用HttpSession接口的方法,進(jìn)行接口的方法,進(jìn)行保存數(shù)據(jù):保存數(shù)據(jù):取出數(shù)據(jù):取出數(shù)據(jù):public void setAttribute(String param,Object value);public Object getAttribute(String param);獲取獲取session對(duì)象的方法對(duì)
9、象的方法getSession( )getSession(boolean bool )getSession( true )truefalse返回與當(dāng)前關(guān)聯(lián)的返回與當(dāng)前關(guān)聯(lián)的會(huì)話,如果沒(méi)有就會(huì)話,如果沒(méi)有就創(chuàng)建后將其返回創(chuàng)建后將其返回返回與當(dāng)前關(guān)聯(lián)返回與當(dāng)前關(guān)聯(lián)的會(huì)話,如果沒(méi)的會(huì)話,如果沒(méi)有返回有返回null使用時(shí),將其轉(zhuǎn)換成原來(lái)數(shù)據(jù)類型使用時(shí),將其轉(zhuǎn)換成原來(lái)數(shù)據(jù)類型CISSSTsession對(duì)象的存在周期 session對(duì)象的存在周期對(duì)象的存在周期session的創(chuàng)建的創(chuàng)建瀏覽器訪問(wèn)服務(wù)器時(shí),服務(wù)器為每個(gè)瀏覽器創(chuàng)建不同的瀏覽器訪問(wèn)服務(wù)器時(shí),服務(wù)器為每個(gè)瀏覽器創(chuàng)建不同的session對(duì)象對(duì)象ses
10、sion的關(guān)閉的關(guān)閉調(diào)用調(diào)用session. invalidate()方法方法,使使session對(duì)象對(duì)象失失效效訪問(wèn)時(shí)間間隔大于非活動(dòng)時(shí)間間隔訪問(wèn)時(shí)間間隔大于非活動(dòng)時(shí)間間隔, session對(duì)象失效對(duì)象失效關(guān)閉瀏覽器時(shí),關(guān)閉瀏覽器時(shí),session對(duì)象失效對(duì)象失效請(qǐng)求請(qǐng)求在內(nèi)存開(kāi)辟空間在內(nèi)存開(kāi)辟空間保存數(shù)據(jù)信息保存數(shù)據(jù)信息清空內(nèi)存內(nèi)當(dāng)前瀏清空內(nèi)存內(nèi)當(dāng)前瀏覽器相關(guān)數(shù)據(jù)信息覽器相關(guān)數(shù)據(jù)信息CISSST現(xiàn)場(chǎng)編程 在登錄頁(yè)面用戶已錄入用戶名,現(xiàn)在登錄頁(yè)面用戶已錄入用戶名,現(xiàn) 在編寫一個(gè)在編寫一個(gè)Servlet接接 收該數(shù)據(jù),并把用戶名值保存在收該數(shù)據(jù),并把用戶名值保存在HttpSession對(duì)象內(nèi)對(duì)
11、象內(nèi)public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String userName=request.getParameter(userName);HttpSession session=request.getSession();if (userName!=null & !.equals(userName)session.setAttribute(userName, userName);elseresponse.
12、sendRedirect(index.html);.CISSST實(shí)現(xiàn)電子書(shū)店的購(gòu)物車需求描述需求描述 查看所有商品查看所有商品選擇商品選擇商品放入購(gòu)物車放入購(gòu)物車?yán)^續(xù)購(gòu)物繼續(xù)購(gòu)物結(jié)賬結(jié)賬滿載而歸滿載而歸CISSST電子書(shū)店演示顯示所有書(shū)籍的列表顯示所有書(shū)籍的列表 點(diǎn)擊某本書(shū),顯示書(shū)籍的詳細(xì)信息點(diǎn)擊某本書(shū),顯示書(shū)籍的詳細(xì)信息添加當(dāng)前書(shū)籍到購(gòu)物車添加當(dāng)前書(shū)籍到購(gòu)物車CISSST電子書(shū)店的數(shù)據(jù)庫(kù)設(shè)計(jì)字段名稱字段類型說(shuō)明isbnvarchar(20)圖書(shū)編碼圖書(shū)編碼titlevarchar(100)書(shū)名書(shū)名editionNumberint版本版本copyrightvarchar(20)版權(quán)版權(quán)publ
13、isherIDint出版商出版商IDimageFilevarchar(20)封面圖像封面圖像pricenumeric(9)價(jià)格價(jià)格數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)名:數(shù)據(jù)庫(kù)名:books數(shù)據(jù)庫(kù)表:數(shù)據(jù)庫(kù)表:titlesCISSST電子書(shū)店的實(shí)體對(duì)象設(shè)計(jì)屬性名稱類型說(shuō)明isbnString圖書(shū)編碼圖書(shū)編碼titleString書(shū)名書(shū)名editionNumberint版本版本copyrightString版權(quán)版權(quán)publisherIDint出版商出版商IDimageFileString封面圖像封面圖像pricedouble價(jià)格價(jià)格 對(duì)象的設(shè)計(jì)對(duì)象的設(shè)計(jì)-書(shū)書(shū)屬性屬性方法(方法(getter、setter
14、方法方法-為了得到和設(shè)置屬性值)為了得到和設(shè)置屬性值)CISSST實(shí)體類書(shū)籍類書(shū)籍類-BookBean.javaimport java.io.Serializable;public class BookBean implements Serializable private String ISBN;/ISBN編號(hào)編號(hào)private String title;/書(shū)名書(shū)名private String copyright;/版權(quán)版權(quán)private String imageFile;/封面圖像封面圖像private int editionNumber;/版本版本private int publishe
15、rID;/出版商出版商IDprivate double price;/價(jià)格價(jià)格public void setISBN(String isbn) / 設(shè)定設(shè)定ISBN編號(hào)編號(hào)ISBN = isbn;public String getISBN() / 返回返回ISBN編號(hào)編號(hào)return ISBN;使用使用get方法,獲得屬性值方法,獲得屬性值BookBean類的私有屬性類的私有屬性標(biāo)識(shí)該類可序列化標(biāo)識(shí)該類可序列化 使用使用set方法,設(shè)置屬性值方法,設(shè)置屬性值CISSST電子書(shū)店的購(gòu)物車設(shè)計(jì) 購(gòu)物車的設(shè)計(jì)購(gòu)物車的設(shè)計(jì)-書(shū)籍清單書(shū)籍清單書(shū)籍名稱書(shū)籍名稱購(gòu)買數(shù)量購(gòu)買數(shù)量書(shū)籍價(jià)格書(shū)籍價(jià)格小計(jì)小計(jì)總計(jì)總
16、計(jì)CISSST數(shù)據(jù)庫(kù)連接類 數(shù)據(jù)庫(kù)連接類:數(shù)據(jù)庫(kù)連接類:ConnectionManager.javapublic class ConnectionManager /打開(kāi)數(shù)據(jù)庫(kù)連接打開(kāi)數(shù)據(jù)庫(kù)連接 public static Connection getConnction() Connection dbConnection = null;try Class.forName(driver); dbConnection = DriverManager.getConnection(url, user, pass); catch (Exception e) e.printStackTrace();retu
17、rn dbConnection; /關(guān)閉數(shù)據(jù)庫(kù)連接關(guān)閉數(shù)據(jù)庫(kù)連接 打開(kāi)數(shù)據(jù)庫(kù)連接,與打開(kāi)數(shù)據(jù)庫(kù)連接,與JSP相同相同演示示例演示示例2:數(shù)據(jù)庫(kù)連接類數(shù)據(jù)庫(kù)連接類ConnectionManager.javaCISSST數(shù)據(jù)庫(kù)訪問(wèn)類 TitlesBean.javapublic List getTitles() List titlesList = new ArrayList(); try connection = ConnectionManager.getConnction(); titlesQuery = connection .prepareStatement(select* form titl
18、es); ResultSet results = titlesQuery.executeQuery(); while (results.next() BookBean book = new BookBean(); book.setISBN(results.getString(isbn); . /設(shè)置其他的屬性值設(shè)置其他的屬性值 titlesList.add(book); catch (Exception exception) exception.printStackTrace(); return titlesList;返回?cái)?shù)據(jù)列表返回?cái)?shù)據(jù)列表演示示例演示示例3:數(shù)據(jù)庫(kù)訪問(wèn)類數(shù)據(jù)庫(kù)訪問(wèn)類TitlesBean.java讀取行數(shù)據(jù)讀取行數(shù)據(jù), ,并存入并存入List中中CISSST顯示所有書(shū)籍信息的頁(yè)面顯示所有商品列表顯示所有商品列表-books.jsp % TitlesBean titlesBean = new TitlesBean(); List titles = titlesBean.getTitles(); session.setAttribute( titles, titles ); /顯示顯示titles內(nèi)數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 歷史文化場(chǎng)地場(chǎng)平施工合同
- 物流行業(yè)萬(wàn)能工聘用合同
- 工程保險(xiǎn)代理合同
- 信息技術(shù)電氣工程改造合同
- 教育培訓(xùn)班臨時(shí)租賃協(xié)議
- 商場(chǎng)季節(jié)性植物租賃合同
- 酒水銷售兼職協(xié)議
- 西餐廳水電路施工合同
- 河道整治與城市排水合同
- 高速公路工程招投標(biāo)合同模板
- 煙酒店合作經(jīng)營(yíng)合同
- 資金托盤協(xié)議書(shū)
- 倉(cāng)庫(kù)管理教學(xué)總結(jié)與反思
- MOOC 中國(guó)電影經(jīng)典影片鑒賞-北京師范大學(xué) 中國(guó)大學(xué)慕課答案
- MOOC 英漢語(yǔ)言對(duì)比-華中科技大學(xué) 中國(guó)大學(xué)慕課答案
- 20K607 防排煙及暖通防火設(shè)計(jì)審查與安裝
- 《金剛石、石墨和C60》第一課時(shí)名師課件
- 2024年安徽合肥市建設(shè)工程監(jiān)測(cè)中心有限責(zé)任公司招聘筆試參考題庫(kù)含答案解析
- 滑雪指導(dǎo)員理論考試復(fù)習(xí)題庫(kù)(含答案)
- 兩癌篩查年度工作計(jì)劃實(shí)施方案
- 2024年常德市高三一模語(yǔ)文試卷(含答案)
評(píng)論
0/150
提交評(píng)論