




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 20 2012 12 西安軟件服務(wù)外包學(xué)院西安軟件服務(wù)外包學(xué)院. .All rights reservedAll rights reserved. .Xian institute Service & Software Science Technology第三章第三章基于基于Servlet的會話跟蹤(一)的會話跟蹤(一)CISSST回顧 request、response 對象有哪些常用方法?web.xml文件的作用?如何理解Servlet的生命周期?實(shí)現(xiàn)頁面跳轉(zhuǎn)有幾種方式?它們之間有哪些區(qū)別?如何理解HTTP協(xié)議?CISSST預(yù)習(xí)檢查如何理解會話(session)?使用什么方法來獲得H
2、ttpSession對象?CISSST本章任務(wù)升級 E-Book電子書店系統(tǒng)實(shí)現(xiàn)1.顯示書籍列表2.點(diǎn)擊書籍后顯示書籍詳細(xì)信息CISSST本章目標(biāo)理解會話跟蹤原理會獲取session對象會使用session對象進(jìn)行數(shù)據(jù)存取CISSSTHTTP協(xié)議1、HTTP協(xié)議有什么特點(diǎn)?協(xié)議有什么特點(diǎn)?無狀態(tài)無狀態(tài)訪問訪問訪問訪問我剛剛被訪問了兩次,但是我我剛剛被訪問了兩次,但是我不知道,是一個人訪問了兩次?不知道,是一個人訪問了兩次?還是兩個人各訪問一次還是兩個人各訪問一次HTTP協(xié)議不記錄用戶的信息協(xié)議不記錄用戶的信息2、 什么是無狀態(tài)什么是無狀態(tài) ?CISSSTHTTP是無狀態(tài)協(xié)議(3-1) 3、如何
3、顯示張三和李四分別訪問某一網(wǎng)頁多如何顯示張三和李四分別訪問某一網(wǎng)頁多 少次?少次?請求請求請求請求響應(yīng)響應(yīng)響應(yīng)響應(yīng)張三張三李四李四為了區(qū)分用戶,需要為了區(qū)分用戶,需要為不同用戶作登記為不同用戶作登記CISSSTHTTP是無狀態(tài)協(xié)議(3-2)購買購買2個商品個商品張三張三李四李四4、在線購物系統(tǒng)中如何對用戶進(jìn)行區(qū)分?在線購物系統(tǒng)中如何對用戶進(jìn)行區(qū)分?購買購買3個商品個商品一共購買了一共購買了5個商品,個商品,錢應(yīng)該從誰的帳戶上扣呢?錢應(yīng)該從誰的帳戶上扣呢?CISSSTHTTP是無狀態(tài)協(xié)議(3-3)Web程序能不能程序能不能像銀行卡號那樣,根據(jù)像銀行卡號那樣,根據(jù)卡號鎖定一個用戶呢?卡號鎖定一個用
4、戶呢?請求請求響應(yīng)響應(yīng)響應(yīng)的時候,由服務(wù)器響應(yīng)的時候,由服務(wù)器給我分配一個唯一給我分配一個唯一ID號,號,這樣就能區(qū)別不同的用戶了這樣就能區(qū)別不同的用戶了再次請求的時候,再次請求的時候,我?guī)е規(guī)е鳬D號,號,告訴服務(wù)器告訴服務(wù)器“我是誰我是誰”如何標(biāo)識用戶?如何標(biāo)識用戶?CISSST會話跟蹤(2-1)HttpSession對象對象服務(wù)器為每個會話創(chuàng)建一個服務(wù)器為每個會話創(chuàng)建一個HttpSession對象對象每個會話對象都有一個唯一的每個會話對象都有一個唯一的ID把用戶的數(shù)據(jù)保存在相應(yīng)的把用戶的數(shù)據(jù)保存在相應(yīng)的HttpSession對象內(nèi)對象內(nèi)第一次請求第一次請求響應(yīng)響應(yīng)服務(wù)器創(chuàng)建一個服務(wù)器創(chuàng)
5、建一個HttpSession對象對象并把該對象的并把該對象的ID返回給用戶返回給用戶同時,服務(wù)器在內(nèi)存中開辟同時,服務(wù)器在內(nèi)存中開辟一空間,用來保存該對象數(shù)據(jù)一空間,用來保存該對象數(shù)據(jù)把把ID發(fā)送給客戶端發(fā)送給客戶端第二次請求把第二次請求把ID一一起發(fā)送給服務(wù)器起發(fā)送給服務(wù)器根據(jù)根據(jù)ID號服務(wù)器尋找號服務(wù)器尋找內(nèi)存中相應(yīng)的數(shù)據(jù)內(nèi)存中相應(yīng)的數(shù)據(jù)CISSST會話跟蹤(2-2)請求請求 1請求請求 2請求請求 n.什么是會話什么是會話當(dāng)前瀏覽器與服務(wù)器間多次的請求、響應(yīng)關(guān)系,被稱作一個會話當(dāng)前瀏覽器與服務(wù)器間多次的請求、響應(yīng)關(guān)系,被稱作一個會話CISSST使用會話的事例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; /將第一次計數(shù)存入將第一次計數(shù)存入session session.setAttribute(COUNTER, new Int
7、eger(1); else counter = (Integer) count).intValue(); counter+;/計數(shù)加一計數(shù)加一/將計數(shù)存入將計數(shù)存入sessionsession.setAttribute(COUNTER, new Integer(counter); 取出取出session對對象內(nèi)存儲的值象內(nèi)存儲的值把數(shù)據(jù)存儲在把數(shù)據(jù)存儲在session對象內(nèi)對象內(nèi)記錄不同用戶的訪問次數(shù)記錄不同用戶的訪問次數(shù) 演示示例演示示例1:網(wǎng)頁計算網(wǎng)頁計算Counter.java獲得獲得session對象對象CISSST會話的創(chuàng)建和使用 public HttpSession getSess
8、ion(); public HttpSession getSession( boolean value); 會話的創(chuàng)建會話的創(chuàng)建使用使用HttpServletRequest 的的 getSession() 方法創(chuàng)建會話,方法創(chuàng)建會話, 語法如下:語法如下: 會話的使用會話的使用使用使用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對象的方法對
9、象的方法getSession( )getSession(boolean bool )getSession( true )truefalse返回與當(dāng)前關(guān)聯(lián)的返回與當(dāng)前關(guān)聯(lián)的會話,如果沒有就會話,如果沒有就創(chuàng)建后將其返回創(chuàng)建后將其返回返回與當(dāng)前關(guān)聯(lián)返回與當(dāng)前關(guān)聯(lián)的會話,如果沒的會話,如果沒有返回有返回null使用時,將其轉(zhuǎn)換成原來數(shù)據(jù)類型使用時,將其轉(zhuǎn)換成原來數(shù)據(jù)類型CISSSTsession對象的存在周期 session對象的存在周期對象的存在周期session的創(chuàng)建的創(chuàng)建瀏覽器訪問服務(wù)器時,服務(wù)器為每個瀏覽器創(chuàng)建不同的瀏覽器訪問服務(wù)器時,服務(wù)器為每個瀏覽器創(chuàng)建不同的session對象對象ses
10、sion的關(guān)閉的關(guān)閉調(diào)用調(diào)用session. invalidate()方法方法,使使session對象對象失失效效訪問時間間隔大于非活動時間間隔訪問時間間隔大于非活動時間間隔, session對象失效對象失效關(guān)閉瀏覽器時,關(guān)閉瀏覽器時,session對象失效對象失效請求請求在內(nèi)存開辟空間在內(nè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)場編程 在登錄頁面用戶已錄入用戶名,現(xiàn)在登錄頁面用戶已錄入用戶名,現(xiàn) 在編寫一個在編寫一個Servlet接接 收該數(shù)據(jù),并把用戶名值保存在收該數(shù)據(jù),并把用戶名值保存在HttpSession對象內(nèi)對
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)電子書店的購物車需求描述需求描述 查看所有商品查看所有商品選擇商品選擇商品放入購物車放入購物車?yán)^續(xù)購物繼續(xù)購物結(jié)賬結(jié)賬滿載而歸滿載而歸CISSST電子書店演示顯示所有書籍的列表顯示所有書籍的列表 點(diǎn)擊某本書,顯示書籍的詳細(xì)信息點(diǎn)擊某本書,顯示書籍的詳細(xì)信息添加當(dāng)前書籍到購物車添加當(dāng)前書籍到購物車CISSST電子書店的數(shù)據(jù)庫設(shè)計字段名稱字段類型說明isbnvarchar(20)圖書編碼圖書編碼titlevarchar(100)書名書名editionNumberint版本版本copyrightvarchar(20)版權(quán)版權(quán)publ
13、isherIDint出版商出版商IDimageFilevarchar(20)封面圖像封面圖像pricenumeric(9)價格價格數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫名:數(shù)據(jù)庫名:books數(shù)據(jù)庫表:數(shù)據(jù)庫表:titlesCISSST電子書店的實(shí)體對象設(shè)計屬性名稱類型說明isbnString圖書編碼圖書編碼titleString書名書名editionNumberint版本版本copyrightString版權(quán)版權(quán)publisherIDint出版商出版商IDimageFileString封面圖像封面圖像pricedouble價格價格 對象的設(shè)計對象的設(shè)計-書書屬性屬性方法(方法(getter、setter
14、方法方法-為了得到和設(shè)置屬性值)為了得到和設(shè)置屬性值)CISSST實(shí)體類書籍類書籍類-BookBean.javaimport java.io.Serializable;public class BookBean implements Serializable private String ISBN;/ISBN編號編號private String title;/書名書名private String copyright;/版權(quán)版權(quán)private String imageFile;/封面圖像封面圖像private int editionNumber;/版本版本private int publishe
15、rID;/出版商出版商IDprivate double price;/價格價格public void setISBN(String isbn) / 設(shè)定設(shè)定ISBN編號編號ISBN = isbn;public String getISBN() / 返回返回ISBN編號編號return ISBN;使用使用get方法,獲得屬性值方法,獲得屬性值BookBean類的私有屬性類的私有屬性標(biāo)識該類可序列化標(biāo)識該類可序列化 使用使用set方法,設(shè)置屬性值方法,設(shè)置屬性值CISSST電子書店的購物車設(shè)計 購物車的設(shè)計購物車的設(shè)計-書籍清單書籍清單書籍名稱書籍名稱購買數(shù)量購買數(shù)量書籍價格書籍價格小計小計總計總
16、計CISSST數(shù)據(jù)庫連接類 數(shù)據(jù)庫連接類:數(shù)據(jù)庫連接類:ConnectionManager.javapublic class ConnectionManager /打開數(shù)據(jù)庫連接打開數(shù)據(jù)庫連接 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ù)庫連接關(guān)閉數(shù)據(jù)庫連接 打開數(shù)據(jù)庫連接,與打開數(shù)據(jù)庫連接,與JSP相同相同演示示例演示示例2:數(shù)據(jù)庫連接類數(shù)據(jù)庫連接類ConnectionManager.javaCISSST數(shù)據(jù)庫訪問類 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;返回數(shù)據(jù)列表返回數(shù)據(jù)列表演示示例演示示例3:數(shù)據(jù)庫訪問類數(shù)據(jù)庫訪問類TitlesBean.java讀取行數(shù)據(jù)讀取行數(shù)據(jù), ,并存入并存入List中中CISSST顯示所有書籍信息的頁面顯示所有商品列表顯示所有商品列表-books.jsp % TitlesBean titlesBean = new TitlesBean(); List titles = titlesBean.getTitles(); session.setAttribute( titles, titles ); /顯示顯示titles內(nèi)數(shù)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年砼收縮模項(xiàng)目可行性研究報告
- 2024-2025學(xué)年高中政治第一單元公民的政治生活第一課生活在人民當(dāng)家作主的國家課時三政治生活:自覺參與課時精練含解析新人教版必修2
- 試論黔東南州苗族蘆笙改良的發(fā)展
- 中國人造原油生產(chǎn)市場前景及投資研究報告
- 2025年新能源發(fā)電項(xiàng)目深度研究分析報告
- 青海日用陶瓷品項(xiàng)目可行性研究報告-圖文
- 2025年精密合金冷軋鋼帶項(xiàng)目投資可行性研究分析報告
- 24 風(fēng)娃娃(教學(xué)設(shè)計)-2024-2025學(xué)年統(tǒng)編版語文二年級上冊
- 2025年度資產(chǎn)評估與財務(wù)分析合同
- 聚苯乙烯保溫板行業(yè)深度研究報告
- 公司自備車出差申請表
- 流行病學(xué)與醫(yī)學(xué)統(tǒng)計學(xué)課件
- 電信渠道管理人員考核管理辦法
- 人教統(tǒng)編版選擇性必修1-國家制度與社會治理-活動課:中國歷史上的大一統(tǒng)國家治理優(yōu)質(zhì)課件(共20張)
- 口腔醫(yī)學(xué)美學(xué)課件-3
- 酒店的安全管理制度
- 杭州市主城區(qū)聲環(huán)境功能區(qū)劃分圖
- 湖南省陽氏宗親分布村落
- 豐田卡羅拉電路圖介紹
- 中考語文十大專題總復(fù)習(xí)資料
- 汽車駕駛員專業(yè)競賽實(shí)施方案
評論
0/150
提交評論