




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、應用Servlet實現購物車具體實現過程1、 創建封裝商品信息的值JavaBeanGoodsSingle package com.yxq.valuebean;/保存商品名稱/保存商品價格/保存商品購買數量public class GoodsSingle private String name;private float price;private int num;public String getName() return name;public void setName(String name) = name;public int getNum() return num;
2、public void setNum(int num) this.num = num;public float getPrice() return price;public void setPrice(float price) this.price = price;2、 創建工具JavaBean MyTools 實現字符型數據轉換為整型及亂碼處理package com.yxq.toolbean;import java.io.UnsupportedEncodingException;public class MyTools public static int strToint(String st
3、r)/將String 型數據轉換為 int 型數據的方法if(str=null|str.equals("")str="0"int i=0;tryi=Integer.parseInt(str);/把str 轉換成int 類型的變量catch(NumberFormatException e)/ try-catch 就是監視 try 中的語句,如果拋出catch 中聲明的異常類型i=0;e.printStackTrace();/把Exception的詳細信息打印出來return i;public static String toChinese(String s
4、tr)/進行轉碼操作的方法if(str=null)str=""try str=new String(str.getBytes("ISO-8859-1"),"gb2312"); catch (UnsupportedEncodingException e) str=""e.printStackTrace();return str;3、 創建購物車JavaBeanShopCar 實現添加、刪除,購物車制作package com.yxq.toolbean;package com.yxq.toolbean;import ja
5、va.util.ArrayList;import com.yxq.valuebean.GoodsSingle;public class ShopCar private ArrayList buylist=new ArrayList();/用來存儲購買的商品public void setBuylist(ArrayList buylist) this.buylist = buylist;/* 功能 向購物車中添加商品* 參數single為GoodsSingle類對象,封裝了要添加的商品信息*/public void addItem(GoodsSingle single)if(single!=nul
6、l)if(buylist.size()=0)如果buylist中不存在任何商品GoodsSingle temp=new GoodsSingle();temp.setName(single.getName();temp.setPrice(single.getPrice();temp.setNum(single.getNum();buylist.add(temp); /存儲商品else如果buylist中存在商品int i=0;for(;i<buylist.size();i+)遍歷buylist集合對象,判斷該集合中是否已經存在當前 要添加的商品GoodsSingle temp=(Goods
7、Single)buylist.get(i);獲取buylist集合中當前元素if(temp.getName().equals(single.getName()/判斷從buylist 集合中獲取的當前商品的名稱是否與要添加的商品的名稱相同/如果相同,說明已經購買了該商品,只需要將商品的購買數量加1temp.setNum(temp.getNum()+1);/將商品購買數量加1break;/結束 for 循環if(i>=buylist.size()/說明buylist中不存在要添加的商品GoodsSingle temp=new GoodsSingle();temp.setName(single
8、.getName();temp.setPrice(single.getPrice();temp.setNum(single.getNum();buylist.add(temp);/存儲商品/* 功能 從購物車中移除指定名稱的商品* 參數name 表示商品名稱*/public void removeItem(String name)for(int i=0;i<buylist.size();i+) /遍 歷 buylist 集合,查找指定名稱的商品GoodsSingle temp=(GoodsSingle)buylist.get(i);/獲取集合中當前位置的商品if(temp.getName
9、().equals(name)/如果商品的名稱為name參數指定的名稱if(temp.getNum()>1)/ 如果商品的購買數量大于1temp.setNum(temp.getNum()-1);/則將購買數量減1break;/結束 for 循環else if(temp.getNum()=1)/如果商品的購買數量為1buylist.remove(i);/ 從buylist集合對象中移除該商品4、 創建實例首頁面index.jsp,初始化商品信息<% page contentType="text/html;charset=gb2312"%><jsp:fo
10、rward page="/index"/>5、 創 建 處 理 用 戶 訪 問 首 頁 面 請 求 的 Servlet-IndexServletpackage com.yxq.servlet;import java.io.IOException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.ser
11、vlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.yxq.valuebean.GoodsSingle;public class IndexServlet extends HttpServlet protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpSession session=request.getS
12、ession();session.setAttribute("goodslist",goodslist);response.sendRedirect("show.jsp");static/靜態代碼塊String口 names="蘋果","香蕉","梨","橘子"float prices=2.8f,3.1f,2.5f,2.3f;for(int i=0;i<4;i+)GoodsSingle single=new GoodsSingle();single.setName(na
13、mesi);single.setPrice(pricesi);single.setNum(1);goodslist.add(single);6、 show.jsp顯示商品信息<% page contentType="text/html;charset=gb2312"%><% page import="java.util.ArrayList" %><% page import="com.yxq.valuebean.GoodsSingle" %><% ArrayListgoodslist=(Arr
14、ayList)session.getAttribute("goodslist"); %><table border="1" width="450" rules="none"cellspacing="0" cellpadding="0"> <tr height=,50,><td colspan="3" align="center"> 提供商品如下</td></tr><
15、tr align=,center, height=,30, bgcolor=,lightgrey,>< td> 名稱 </td>< td>價格(元/斤)</td>< td>購買 </td></tr><% if(goodslist=nu1111goodslist.size()=0) %><tr height="100M><td colspan="3" align="center,>商品可顯示! </td></tr&
16、gt;<%elsefor(int i=0;i<goodslist.size();i+)GoodsSinglesingle=(GoodsSingle)goodslist.get(i);%><tr height="50" align="center"><td><%=single.getName()%></td><td><%=single.getPrice()%></td><td><a href=" doCar?action=buy
17、&id=<%=i%>”> 購買 </a></td></tr><%><tr height ="50" >< td align ="center" colspan ="3" >< a href ="shopcar.jsp">查看購物車 </ a>< / td >< / tr >< / table >7、 創建處理用戶購買、移除、清空購物車請求的ServletSer
18、vletBuyServlet package com.yxq.servlet;import java.io.IOException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;im
19、port com.yxq.toolbean.MyTools;import com.yxq.toolbean.ShopCar;import com.yxq.valuebean.GoodsSingle;public class BuyServlet extends HttpServlet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doPost(request,response);protected void d
20、oPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException String action=request.getParameter("action"); /獲取 action 參數值if(action=null)action=""請求方法實現商品的購買if(action.equals("buy")buy(request,response);if(action.equals("remove&q
21、uot;)除”請求remove(request,response);remove()方法實現商品的移除if(action.equals("clear")購物車”請求clear(request,response);/觸發了“購買”/調用 buy()/觸發了 “移/調用/觸發了“清空/調用clear()方法實現購物車的清空/實現購買商品的方法protected void buy(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException HttpSess
22、ion session=request.getSession();String strId=request.getParameter("id");/獲取觸發“購買”請求時傳遞的 id 參數,該參數存儲的是商品在goodslistX寸象中存儲的位置int id=MyTools.strToint(strId);ArrayListgoodslist=(ArrayList)session.getAttribute("goodslist");GoodsSingle single=(GoodsSingle)goodslist.get(id);ArrayListbuy
23、list=(ArrayList)session.getAttribute("buylist");/從session;圍內獲取存儲了用戶已購買商品的集合對象if(buylist=null)buylist=new ArrayList();ShopCar myCar=new ShopCar();myCar.setBuylist(buylist);/將buylist對象賦值給ShopCar類實例中的屬性myCar.addItem(single);/調用ShopCar 類中 addItem() 方法實現商品添加操作session.setAttribute("buylist&
24、quot;,buylist);response.sendRedirect("show.jsp");/將請求重定向至“ show.jsp頁面8、 在 web.xml 文件中配置Servlet<?xml version="1.0" encoding="UTF-8"?><web-app><!- 配置 IndexServlet -><servlet><servlet-name>indexServlet</servlet-name><servlet-class>
25、com.yxq.servlet.IndexServlet</servlet-class ></servlet><servlet-mapping><servlet-name>indexServlet</servlet-name><url-pattern> /index</url-pattern></servlet-mapping><!- 配置BuyServlet -><servlet><servlet-name>buyServlet</servlet-name
26、><servlet-class>com.yxq.servlet.BuyServlet</servlet-class></servlet><servlet-mapping><servlet-name>buyServlet</servlet-name><url-pattern> /doCar</url-pattern></servlet-mapping></web-app>9、 創建頁面shopcar.jsp購物車<% page contentType="t
27、ext/html;charset=gb2312"%><% page import="java.util.ArrayList" %><% page import="com.yxq.valuebean.GoodsSingle" %><%獲取存儲在sessio沖用來存儲用戶已購買商品的buylist集合對象ArrayListbuylist=(ArrayList)session.getAttribute(llbuylist11);float total=0;用來存儲應付金額%>< tableborder*
28、" width="450" rules=',none,1cellspacing=llO" cellpadding-'O'><tr height=,50,xtd colspan=,5,' align-'center' 購買 的商品如下v/td>v/tr><tr align'center" height="30" bgcolor="lightgrey”><td width=,25%,> 名稱 v/td>vtd>價格(元/斤)</td>vtd>數量 </td>vtd> 總價(元)v/td>vtd>移除(/次)v/td></tr><% if(buylist=null|buylistsize()=O) %><tr height=',100,xtd colspan=',5,1 align="center”> 您的 購物車為空! </td></tr><%)elsefor(int i=O;i<buylist.size();i+)GoodsSingle
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 質量工程師資格證考試復習計劃試題及答案
- 紡織機械操作過程中技術難題試題及答案
- 小學生就餐秩序課件
- 設計師考試整體素質提升途徑試題及答案
- 電氣工程師項目經驗試題及答案
- 交通科技進步與市場需求試題及答案
- 突破界限推進Adobe考試成功之路試題及答案
- 質量工程師考試重點復習試題及答案
- 實踐與理論結合的Adobe設計師試題及答案
- 紡織機械生產核心知識試題及答案
- 金融大數據銀行項目使用手冊
- 《裝飾構造與施工工藝實習》課程標準
- 中考數學解題技巧專題巧用旋轉進行計算全國公開課一等獎百校聯賽微課賽課特等獎課件
- 環境設計創新創業項目計劃書
- MOOC 人工智能原理-北京大學 中國大學慕課答案
- 新概念第一冊單詞默寫表
- 海邁工程量清單計價軟件使用說明書樣本
- 工程倫理試題及答案
- 廣告公司年度合作協議-帶附件
- 幼兒園辦學規模及租金建議方案
- 公證文書書寫的常見錯誤與糾正方法
評論
0/150
提交評論