MVC模式中購物車業(yè)務(wù)類JavaBean的設(shè)計_第1頁
MVC模式中購物車業(yè)務(wù)類JavaBean的設(shè)計_第2頁
MVC模式中購物車業(yè)務(wù)類JavaBean的設(shè)計_第3頁
MVC模式中購物車業(yè)務(wù)類JavaBean的設(shè)計_第4頁
MVC模式中購物車業(yè)務(wù)類JavaBean的設(shè)計_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、模塊模塊3 MVC3 MVC模式中購物車業(yè)務(wù)類模式中購物車業(yè)務(wù)類JavaBeanJavaBean的設(shè)計的設(shè)計項目四 使用Servlet實現(xiàn)網(wǎng)上商城商品的管理2工作任務(wù)任務(wù)一 創(chuàng)建商品表的JAVABEAN;任務(wù)二 用普通方法在JSP中對商品表的JAVABEAN進寫讀寫操作;任務(wù)三 用JSP標準動作在JSP中對商品表的JAVABEAN進寫讀寫操作任務(wù)四 實現(xiàn)網(wǎng)上商店用戶JAVABEAN與html登陸界面的數(shù)據(jù)交互;任務(wù)五 用JAVABEAN與內(nèi)置對象實現(xiàn)網(wǎng)上商店購物車;課堂演示課堂演示3任務(wù)一任務(wù)一創(chuàng)建商品表的創(chuàng)建商品表的JAVABEANJAVABEAN 學(xué)習(xí)目標學(xué)習(xí)目標Java bean的使用重

2、點難點重點難點創(chuàng)建javabean4組件開發(fā)請求請求ServletJavaBeanJSP頁面頁面執(zhí)行執(zhí)行調(diào)用調(diào)用轉(zhuǎn)向轉(zhuǎn)向響應(yīng)響應(yīng)JSTL使用使用訪問訪問返回數(shù)據(jù)返回數(shù)據(jù)客戶端客戶端5為什么需要JAVABEANpublic int saveOrder(String username,String zipcode,String phone, String creditcard,double total) try con = ConnectionManager.getConnction(); String strSql = insert into BookOrder(username,zipcode

3、,phone, + creditcard,total) values(?,?,?,?,?); pStatement = con.prepareStatement(strSql); pStatement.setString(1, username); /設(shè)置其它參數(shù)值設(shè)置其它參數(shù)值 result = pStatement.executeUpdate(); catch (SQLException sqlE) sqlE.printStackTrace(); return result;參數(shù)過多參數(shù)過多,且為對象屬性且為對象屬性如何按照如何按照OO設(shè)計參數(shù)?設(shè)計參數(shù)?使用使用JavaBean進行參數(shù)的

4、傳遞進行參數(shù)的傳遞參數(shù)的使用6JAVABEAN介紹qJavaBean的來源qBean:豆子qJavaBean是應(yīng)用程序的組成部分public class SecondLevelTitle public SecondLevelTitle() private int id; private String titleName; private int parentTitleId; private String creator; public int getId() return this.id; public void setId(int id) this.id=id; /其它其它setter、ge

5、tter方法方法7封裝數(shù)據(jù)的JAVABEANpublic class Order private String userName;/ 用戶名用戶名 private String zipcode;/ 郵編郵編 private String phone;/ 電話電話 private String creditcard;/ 信用卡信用卡 private double total;/ 總額總額 public Order() public void setUserName(String userName) this. userName = userName; public String getUserN

6、ame() return username; /其它屬性的其它屬性的setter、getter方法方法JavaBean - Order.java將屬性聲明為私有屬性將屬性聲明為私有屬性無參的公有構(gòu)造方法無參的公有構(gòu)造方法公有的設(shè)置屬性值方法公有的設(shè)置屬性值方法setXxx( )公有的獲取屬性值方法公有的獲取屬性值方法getXxx( )8創(chuàng)建JAVABEANq 使用Eclipse工具自動生成getter/setter方法9課堂實踐課堂實踐創(chuàng)建商品表數(shù)據(jù)封裝的創(chuàng)建商品表數(shù)據(jù)封裝的javabeanjavabean改錯與調(diào)試? 課堂實踐課堂實踐10拓展提高封裝業(yè)務(wù)的封裝業(yè)務(wù)的JavaBean - Or

7、derOperation.javapublic class OrderOperation public int saveOrder(Order order) int result = 0; try Connection con = ConnectionManager.getConnction(); String strSql = insert into BookOrder(username,zipcode,phone, + creditcard,total) values(?,?,?,?,?); PreparedStatement pStatement = con.prepareStateme

8、nt(strSql); pStatement.setString(1, order.getUserName(); /設(shè)置其它的參數(shù)值設(shè)置其它的參數(shù)值 result = pStatement.executeUpdate(); catch (SQLException sqlE) sqlE.printStackTrace(); return result; 把封裝好數(shù)據(jù)的對象作為參數(shù)把封裝好數(shù)據(jù)的對象作為參數(shù)從對象中取數(shù)據(jù)從對象中取數(shù)據(jù)演示示例演示示例1: OrderOperation.java11任務(wù)小結(jié)使用JavaBean封裝數(shù)據(jù)的方法使用javabean封裝業(yè)務(wù)的方法學(xué)生自評、互評學(xué)生自評、互

9、評 教師抽查小組驗收教師抽查小組驗收 12任務(wù)二任務(wù)二在在JSPJSP中對中對JAVABEANJAVABEAN進寫讀寫操作進寫讀寫操作 學(xué)習(xí)目標學(xué)習(xí)目標Java bean的使用重點難點重點難點Jsp中使用javabean13JAVABEAN與JSPq廣義講,符合規(guī)范的Java類都是JavaBeanqJavaBean的作用q封裝數(shù)據(jù)q處理業(yè)務(wù)邏輯qJSP與JavaBean如何結(jié)合使用呢?qScriptletqJSP標準動作14課堂實踐 q用Scriptlet訪問javabeanq改錯與調(diào)試q? 課堂演示與實踐課堂演示與實踐15任務(wù)三任務(wù)三用用J JSPSP標準動作讀寫標準動作讀寫JAVABEAN

10、JAVABEAN 學(xué)習(xí)目標學(xué)習(xí)目標掌握Java bean的使用重點難點重點難點標準動作讀寫javabean16為什么需要JSP標準動作q通過Java 腳本使用后臺JavaBeanq美工難以維護q使用JSP標準動作qJSP標準動作包括:JSP 標準動作標準動作17USEBEAN 動作.quseBean動作創(chuàng)建或者獲得一個對象qJavaBean 的scope設(shè)置 :創(chuàng)建對象的名稱創(chuàng)建對象的名稱創(chuàng)建對象的類型創(chuàng)建對象的類型指定對象的范圍指定對象的范圍范圍范圍說明說明pageBean 對象只能在當前頁面使用,當加載新頁面時就會被銷毀requestBean對象在一個請求過程中存在sessionBean對

11、象在一個會話中存在,直至?xí)捚浣K止或被刪除為止applicationBean對象在整個應(yīng)用程序中均可使用18SETPROPERTY和GETPROPERTY動作. .value設(shè)置設(shè)置 JavaBean 的該屬性值的該屬性值property指定指定 JavaBean 的屬性名稱的屬性名稱q 設(shè)置JavaBean的屬性值q 獲取JavaBean中屬性的值.name 屬性指定對屬性指定對 JavaBean 類類的引用,與的引用,與useBean中的中的id一致一致property指定指定 JavaBean 的屬性名稱的屬性名稱name 屬性指定對屬性指定對 JavaBean 類的引用類的引用19JS

12、P標準動作示例使用使用JSP標準動作顯示數(shù)據(jù)標準動作顯示數(shù)據(jù) - processorder.jsp jsp:setProperty name=order property=userName value=/ /設(shè)置其它屬性值設(shè)置其它屬性值 用戶名:用戶名: . 郵編:郵編: . 電電 話:話: . 信用卡:信用卡: . 總價:總價: . 獲得屬性值,并顯示在頁面上獲得屬性值,并顯示在頁面上獲得用戶提交數(shù)據(jù),并為屬性賦值獲得用戶提交數(shù)據(jù),并為屬性賦值20PARAM的使用使用使用param顯示數(shù)據(jù)顯示數(shù)據(jù) - processorder.jsp /設(shè)置其它屬性值設(shè)置其它屬性值用戶名:用戶名: . /顯

13、示顯示order對象其它屬性值對象其它屬性值姓姓 名名: .總總 價價: . 獲得用戶提交數(shù)據(jù)獲得用戶提交數(shù)據(jù)獲得屬性值,并顯示在頁面上獲得屬性值,并顯示在頁面上自動轉(zhuǎn)換數(shù)據(jù)類型自動轉(zhuǎn)換數(shù)據(jù)類型21JSP標準動作調(diào)用JAVABEANq JSP標準動作與JavaBean的getter、setter方法public class Simplebean private String name; private int age; public Simplebean() /無參的構(gòu)造函數(shù)無參的構(gòu)造函數(shù)System.out.println(調(diào)用無參構(gòu)造方法,創(chuàng)建實例調(diào)用無參構(gòu)造方法,創(chuàng)建實例!); publ

14、ic String getName() /屬性的屬性的getter方法方法System.out.println(調(diào)用了調(diào)用了getName()方法,獲取方法,獲取name值值);return name; public void setName(String username) /屬性的屬性的setter方法方法name = username;System.out.println(調(diào)用了調(diào)用了setName()方法,設(shè)置方法,設(shè)置name值值); SimpleBean.java方法是誰調(diào)用的?方法是誰調(diào)用的?在在 JSP 中使用中使用 JavaBean 姓名:姓名: 年齡:年齡:setPrope

15、rty動作調(diào)用動作調(diào)用JavaBean的的setter方法方法getProperty動作調(diào)用動作調(diào)用JavaBean的的getter方法方法22課堂實踐q請使用JSP標準動作創(chuàng)建和使用商品表數(shù)據(jù)封裝JavaBean對象,對該對象的屬性進行賦值課堂實踐課堂實踐23常見錯誤 要與表單元素名稱對應(yīng)要與表單元素名稱對應(yīng)數(shù)據(jù)顯示為數(shù)據(jù)顯示為null24常見錯誤 應(yīng)該是應(yīng)該是userName這是什么錯誤?這是什么錯誤?在在Order中沒有找到屬性中沒有找到屬性userName2屬性名稱錯誤屬性名稱錯誤25常見錯誤 應(yīng)該是應(yīng)該是“order”,要與,要與useBean中的中的id一致一致引用名稱錯誤引用名稱

16、錯誤這是什么錯誤?這是什么錯誤?26任務(wù)小結(jié)標準動作讀寫javabean學(xué)生自評、互評學(xué)生自評、互評 教師抽查小組驗收教師抽查小組驗收 27任務(wù)四任務(wù)四實現(xiàn)網(wǎng)上商店用戶實現(xiàn)網(wǎng)上商店用戶JAVABEANJAVABEAN與與HTMLHTML登陸界面的數(shù)登陸界面的數(shù)據(jù)交互據(jù)交互 學(xué)習(xí)目標學(xué)習(xí)目標掌握Java bean的使用重點難點重點難點JAVABEAN與html登陸界面的交互 28(1)編寫實現(xiàn)特定功能的JavaBean;(2)應(yīng)用在JSP頁面中聲明并初始化JavaBean,這個JavaBean有一個唯一的id標志,還有一個生存范圍scope(根據(jù)具體的需要進行指定),同時還要指定JavaBean

17、的class來源(如mybean.LoginBeanr);(3)調(diào)用JavaBean提供的public方法或者直接使用標簽來得到JavaBean中屬性的值。 (4)調(diào)用JavaBean中的特定方法完成指定的功能。 任務(wù)實施步驟29上機實訓(xùn)JavaBean與HTML表單的交互:在Web程序中,客戶端通常是通過HTML表單與應(yīng)用程序交互,HTML表單中提交的信息存放在request對象中,并且是名稱-值對的形式進行傳遞,應(yīng)用JavaBean可以實現(xiàn)HTML表單元素與JavaBean屬性的映射,從而實現(xiàn)JavaBean屬性與HTML表單的輸入?yún)?shù)之間的交互。課堂演示與實踐課堂演示與實踐30拓展提高p

18、ublic boolean getValid() Connection con = ConnectionManager.getConnection(); PreparedStatement pStatement = null; String sql = select * from userinfo where loginname = ?; try pStatement = con.prepareStatement(sql); pStatement.setString(1, getName(); ResultSet rs = pStatement.executeQuery(); if (rs.n

19、ext() & rs.getString(password).equals(getPassword() valid = true; else valid = false; catch (Exception ex) ex.printStackTrace(); return valid;UserManager.java判斷是否存在該用戶判斷是否存在該用戶演示示例演示示例2: UserManager.javaq使用標準動作實現(xiàn)登錄驗證31拓展提高q使用JSP標準動作和JavaBean進行數(shù)據(jù)驗證 創(chuàng)建創(chuàng)建UserManager對象,并為屬性賦值對象,并為屬性賦值調(diào)用驗證方法,判斷用戶是否存在

20、調(diào)用驗證方法,判斷用戶是否存在JSP標準動作,轉(zhuǎn)發(fā)到標準動作,轉(zhuǎn)發(fā)到page屬性指定的頁面,等價屬性指定的頁面,等價與與RequestDispatcher對象的對象的forward(req,res)方法方法根據(jù)結(jié)果,轉(zhuǎn)發(fā)到相應(yīng)頁面根據(jù)結(jié)果,轉(zhuǎn)發(fā)到相應(yīng)頁面register.jsp32任務(wù)小結(jié)Html與javabean的交互學(xué)生自評、互評學(xué)生自評、互評 教師抽查小組驗收教師抽查小組驗收 33任務(wù)五任務(wù)五用用JAVABEANJAVABEAN與內(nèi)置對象實現(xiàn)網(wǎng)上商店購物與內(nèi)置對象實現(xiàn)網(wǎng)上商店購物車車 學(xué)習(xí)目標學(xué)習(xí)目標Java bean的使用Session的使用重點難點重點難點javabean與sessi

21、on綜合應(yīng)用34提出任務(wù)問題q實現(xiàn)電子商城的購物車需求描述 查看所有商品查看所有商品選擇商品選擇商品放入購物車放入購物車繼繼續(xù)購物續(xù)購物結(jié)賬結(jié)賬滿載而歸滿載而歸35HTTP協(xié)議1、HTTP協(xié)議有什么特點?q無狀態(tài)訪問訪問訪問訪問我剛剛被訪問了兩次,但是我我剛剛被訪問了兩次,但是我不知道,是一個人訪問了兩次?不知道,是一個人訪問了兩次?還是兩個人各訪問一次還是兩個人各訪問一次HTTP協(xié)議不記錄用戶的信息協(xié)議不記錄用戶的信息2、 什么是無狀態(tài) ?36HTTP是無狀態(tài)協(xié)議 3、如何顯示張三和李四分別訪問某一網(wǎng)頁多少次?請求請求請求請求響應(yīng)響應(yīng)響應(yīng)響應(yīng)張三張三李四李四為了區(qū)分用戶,需要為了區(qū)分用戶,需

22、要為不同用戶作登記為不同用戶作登記37HTTP是無狀態(tài)協(xié)議購買購買2個商品個商品張三張三李四李四4、在線購物系統(tǒng)中如何對用戶進行區(qū)分?購買購買3個商品個商品一共購買了一共購買了5個商品,個商品,錢應(yīng)該從誰的帳戶上扣呢?錢應(yīng)該從誰的帳戶上扣呢?38HTTP是無狀態(tài)協(xié)議Web程序能不能程序能不能像銀行卡號那樣,根據(jù)像銀行卡號那樣,根據(jù)卡號鎖定一個用戶呢?卡號鎖定一個用戶呢?請求請求響應(yīng)響應(yīng)響應(yīng)的時候,由服務(wù)器響應(yīng)的時候,由服務(wù)器給我分配一個唯一給我分配一個唯一ID號,號,這樣就能區(qū)別不同的用戶了這樣就能區(qū)別不同的用戶了再次請求的時候,再次請求的時候,我?guī)е規(guī)е鳬D號,號,告訴服務(wù)器告訴服務(wù)器“我

23、是誰我是誰”如何標識用戶?39會話跟蹤qHttpSession對象q服務(wù)器為每個會話創(chuàng)建一個HttpSession對象q每個會話對象都有一個唯一的IDq把用戶的數(shù)據(jù)保存在相應(yīng)的HttpSession對象內(nèi)第一次請求第一次請求響應(yīng)響應(yīng)服務(wù)器創(chuàng)建一個服務(wù)器創(chuàng)建一個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ù)4

24、0會話跟蹤請求請求 1請求請求 2請求請求 n.q什么是會話q當前瀏覽器與服務(wù)器間多次的請求、響應(yīng)關(guān)系,被稱作一個會話41使用會話的事例public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpSession session = request.getSession(true); Object count = session.getAttribute(COUNTER);int counter = 0;if (count

25、= null) counter = 1; /將第一次計數(shù)存入將第一次計數(shù)存入session session.setAttribute(COUNTER, new Integer(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ù) 演示示例演示示例1:網(wǎng)頁計算

26、網(wǎng)頁計算Counter.java獲得獲得session對象對象42會話的創(chuàng)建和使用 public HttpSession getSession(); public HttpSession getSession( boolean value);q 會話的創(chuàng)建q使用HttpServletRequest 的 getSession() 方法創(chuàng)建會話, 語法如下:q 會話的使用q使用HttpSession接口的方法,進行q保存數(shù)據(jù):q取出數(shù)據(jù):public void setAttribute(String param,Object value);public Object getAttribute(St

27、ring param);獲取獲取session對象的方法對象的方法getSession( )getSession(boolean bool )getSession( true )truefalse返回與當前關(guān)聯(lián)的返回與當前關(guān)聯(lián)的會話,如果沒有就會話,如果沒有就創(chuàng)建后將其返回創(chuàng)建后將其返回返回與當前關(guān)聯(lián)返回與當前關(guān)聯(lián)的會話,如果沒的會話,如果沒有返回有返回null使用時,將其轉(zhuǎn)換成原來數(shù)據(jù)類型使用時,將其轉(zhuǎn)換成原來數(shù)據(jù)類型43SESSION對象的存在周期q session對象的存在周期qsession的創(chuàng)建q瀏覽器訪問服務(wù)器時,服務(wù)器為每個瀏覽器創(chuàng)建不同的session對象qsession的關(guān)閉

28、q調(diào)用session. invalidate()方法,使session對象失效q訪問時間間隔大于非活動時間間隔, session對象失效q關(guān)閉瀏覽器時,session對象失效請求請求在內(nèi)存開辟空間在內(nèi)存開辟空間保存數(shù)據(jù)信息保存數(shù)據(jù)信息清空內(nèi)存內(nèi)當前瀏清空內(nèi)存內(nèi)當前瀏覽器相關(guān)數(shù)據(jù)信息覽器相關(guān)數(shù)據(jù)信息44課堂實踐 在登錄頁面用戶已錄入用戶名,現(xiàn)編寫一個在登錄頁面用戶已錄入用戶名,現(xiàn)編寫一個Servlet接接 收該數(shù)據(jù),并把用戶名值保存在收該數(shù)據(jù),并把用戶名值保存在HttpSession對象內(nèi)對象內(nèi)public void doGet(HttpServletRequest request, HttpS

29、ervletResponse response) throws ServletException, IOException String userName=request.getParameter(userName);HttpSession session=request.getSession();if (userName!=null & .equals(userName)session.setAttribute(userName, userName);elseresponse.sendRedirect(index.html);.45購物車的設(shè)計分析q設(shè)計分析q購物車中對象的設(shè)計q使用

30、Servlet實現(xiàn)添加書籍到購物車q使用JSP實現(xiàn)查看購物車的書籍列表選擇商品選擇商品放入購物車放入購物車繼繼續(xù)購物續(xù)購物結(jié)賬結(jié)賬滿載而歸滿載而歸本章要完成內(nèi)容本章要完成內(nèi)容購物車如何設(shè)計呢?購物車如何設(shè)計呢?46購物車中對象的設(shè)計q 對象的設(shè)計書籍本身信息書籍本身信息書籍購買數(shù)量書籍購買數(shù)量書籍名稱書籍名稱書籍編號書籍編號書籍價格書籍價格書籍版本號書籍版本號BookBean購買書籍的數(shù)量購買書籍的數(shù)量public class CartItemBean implements Serializable private BookBean book; /當前商品當前商品 private int qu

31、antity; /購物車中的數(shù)量購物車中的數(shù)量 public CartItemBean( BookBean bookToAdd, int number ) book = bookToAdd; quantity = number; public void setQuantity( int number ) quantity = number; public int getQuantity() return quantity; /其他的其他的setter、getter方法方法對象屬性對象屬性構(gòu)造方法構(gòu)造方法屬性的屬性的getter、setter方法方法演示示例演示示例1:購物車商品信息類購物車商品

32、信息類CartItemBean.java47購物車的實現(xiàn)q使用購物車存放商品裝入購物車裝入購物車方便存取商品方便存取商品48購物車的實現(xiàn)q使用Map實現(xiàn)購物車BookBeanHashMapsessionkeyvalue存放到存放到存放到存放到書籍數(shù)量書籍數(shù)量CartItemBeanisbncart49MAP回顧什么是什么是Map?Map的特點是什么?的特點是什么?Map的對象如何創(chuàng)建?的對象如何創(chuàng)建?如何向如何向Map中添加數(shù)據(jù)?中添加數(shù)據(jù)?如何從如何從Map中取數(shù)據(jù)?中取數(shù)據(jù)?50實現(xiàn)添加商品到購物車q添加書籍到購物車 q獲得session對象q從session中取出BookBean對象q創(chuàng)

33、建HashMap對象,并添加一個條目到Map中public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpSession session = request.getSession(false); BookBean book = (BookBean)session.getAttribute(bookToAdd); Map cart = new HashMap(); cart.put(book.getISBN(), new

34、CartItemBean(book, 1); session.setAttribute(cart, cart);獲得獲得session對象對象從從session中取出書籍信息中取出書籍信息把數(shù)據(jù)存入到把數(shù)據(jù)存入到session中中51實現(xiàn)添加商品到購物車q判斷購物車中是否存在該書籍q存在:數(shù)量加一q不存在:添加條目到Map中 HttpSession session = request.getSession(false); Map cart = (Map) session.getAttribute(cart); if (cart = null) cart = new HashMap(); ses

35、sion.setAttribute(cart, cart); BookBean book = (BookBean) session.getAttribute(bookToAdd); CartItemBean cartItem = (CartItemBean) cart.get(book.getISBN(); if (cartItem != null) cartItem.setQuantity(cartItem.getQuantity() + 1); else cart.put(book.getISBN(), new CartItemBean(book, 1); 如果如果session中存在該書

36、籍,數(shù)量加中存在該書籍,數(shù)量加1如果如果session中不存在該書籍,添加條目數(shù)量為中不存在該書籍,添加條目數(shù)量為1判斷判斷session中是否存在中是否存在cart對象對象演示示例演示示例2:向購物車中添加商品向購物車中添加商品AddBookToCart.java52查看購物車的商品列表q轉(zhuǎn)向viewCart.jspq從session中取出Mapq從Map中取出CartItemBean數(shù)據(jù)Map cart = (Map) session.getAttribute(cart);Set cartItems = cart.keySet();Object isbn = cartItems.toArr

37、ay();BookBean book;int i = 0;while (i isbn.length) cartItem = (CartItemBean) cart.get(String)isbni); book = cartItem.getBook(); /在頁面上顯示在頁面上顯示book數(shù)據(jù),如數(shù)據(jù),如:book.getTitle(); i+;viewCart.jsp從從session中取出中取出Map得到得到Map中中key值的值的Set集合,再轉(zhuǎn)換成數(shù)組,集合,再轉(zhuǎn)換成數(shù)組,以便使用循環(huán)進行遍歷以便使用循環(huán)進行遍歷通過通過key值取值取value演示示例演示示例3:顯示購物車內(nèi)商品顯示購

38、物車內(nèi)商品viewCart.jsp53SET介紹Set接口繼承關(guān)系和常用方法接口繼承關(guān)系和常用方法Collection接口接口Set接口接口HashSet類類TreeSet類類int size( )boolean isEmpty() Object toArray() boolean add(Object o) 繼承繼承實現(xiàn)實現(xiàn)實現(xiàn)實現(xiàn)返回返回Set集合元素數(shù)集合元素數(shù)返回一個包含返回一個包含 Set 中所有元素的數(shù)組中所有元素的數(shù)組 向向Set中添加元素中添加元素判斷判斷Set中是否包含元素,不包含返回中是否包含元素,不包含返回true54集合接口和類(2-1)q 集合接口、類關(guān)系圖Colle

39、ction接口接口 List接口接口Set接口接口ArrayList類類LinkedList類類HashSet類類TreeSet類類繼承繼承 繼承繼承 實現(xiàn)實現(xiàn) 實現(xiàn)實現(xiàn) List及實現(xiàn)類是可變及實現(xiàn)類是可變大小的列表大小的列表 ,適用于,適用于按數(shù)值索引訪問元素按數(shù)值索引訪問元素 Set集合中不允許集合中不允許有重復(fù)的數(shù)據(jù)有重復(fù)的數(shù)據(jù) 55集合接口和類(2-2)q 集合接口、類關(guān)系圖Map接口接口 HashMap類類 Properties類類Map中以鍵中以鍵-值對值對形式存儲數(shù)據(jù)形式存儲數(shù)據(jù) 實現(xiàn)實現(xiàn) 56現(xiàn)場編程添加商品到購物車的實現(xiàn)步驟是什么?并寫出相關(guān)代碼。q首先從session中取

40、出Map對象q判斷Map中是否存在該數(shù)據(jù)q存在:數(shù)量加一q不存在:添加,數(shù)量為一57顯示購物車數(shù)據(jù)q如何顯示購物車內(nèi)Map中所有數(shù)據(jù)q可不可以使用Map的size()進行循環(huán)獲得key、value值qMap 不具有整數(shù)索引,不能利用size()進行循環(huán)q使用Set接口qSet接口繼承了Collection接口,但是它不允許集合中存在重復(fù)項 qSet接口在Map中的使用Map cart = (Map) session.getAttribute(cart);for(int i=0;icart.size();i+) CartItemBean cartItem =(CartItemBean)cart.get(i); Map沒有整數(shù)索引,參數(shù)應(yīng)該是沒有整數(shù)索引,參數(shù)應(yīng)該是key值值Map cart = (Map) session.getAttribute(cart);Set cartItem

溫馨提示

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

最新文檔

評論

0/150

提交評論