<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了用session實現簡易購物車功能的具體程式碼,供大家參考,具體內容如下
整體思路:先寫一個JSP用於實現商品圖片的讀取(再次之前要寫好連線資料庫),當點加入購物車市,根據商品唯一的標識來新增進去(我這裡是商品的ID號),點選檢視購物車可以看到剛新增進去的東西,和總價錢,點選刪除商品可以刪除商品。點選返回就到商品商城
我在WebContent下建立了一個imges的資料夾放我的圖片
然後建立了一個product.java的實體類用來封裝,如下:
package com.huangxu.Dao; import java.sql.Date; public class product { private int pid; private int ptype; private String pname; private float pprice; private int pquantity; private String pimage; private String pdesc; private Date ptime; public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public int getPtype() { return ptype; } public void setPtype(int ptype) { this.ptype = ptype; } public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } public float getPprice() { return pprice; } public void setPprice(float pprice) { this.pprice = pprice; } public int getPquantity() { return pquantity; } public void setPquantity(int pquantity) { this.pquantity = pquantity; } public String getPimage() { return pimage; } public void setPimage(String pimage) { this.pimage = pimage; } public String getPdesc() { return pdesc; } public void setPdesc(String pdesc) { this.pdesc = pdesc; } public Date getPtime() { return ptime; } public void setPtime(Date ptime) { this.ptime = ptime; } }
接著寫了一個ProductDAO.java的類用來連線資料庫,如下:
package com.huangxu; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.huangxu.Dao.product; public class ProductDAO extends jdbcDao { /* * 得到產品的資訊 */ public List<product> getAllproducts() { String sql = "select * from product"; List<product> plist = new ArrayList<product>(); try { conn = getConnection(); pst = conn.prepareStatement(sql); rs=pst.executeQuery(); while(rs.next()){ product p=new product(); p.setPid(rs.getInt(1)); p.setPtype(rs.getInt(2)); p.setPname(rs.getString(3)); p.setPprice(rs.getFloat(4)); p.setPquantity(rs.getInt(5)); p.setPimage(rs.getString(6)); p.setPdesc(rs.getString(7)); p.setPtime(rs.getDate(8)); plist.add(p); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return plist; } public product findProductByID(int pid) { product p=null; String sql="SELECT * from product where pid=?"; try { pst=getConnection().prepareStatement(sql); pst.setInt(1, pid); rs=pst.executeQuery(); if(rs.next()) { p=new product(); p.setPid(rs.getInt(1)); p.setPtype(rs.getInt(2)); p.setPname(rs.getString(3)); p.setPprice(rs.getFloat(4)); p.setPquantity(rs.getInt(5)); p.setPimage(rs.getString(6)); p.setPdesc(rs.getString(7)); p.setPtime(rs.getDate(8)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { close(); } return p; } }
前置工作完畢,接著開始設計購物車
1.首先寫一個jsp頁面,我這裡叫做imgs.jsp
<%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.huangxu.ProductDAO"%> <%@ page import="com.huangxu.Dao.product"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <style type="text/css"> .mybox { widows: 200pt; height: auto; border: 1px solid red; float: left; margin: 10px 10px; padding: 5px 10px; } .mybox:HOVER { background-color: #FAB; } </style> </head> <body> <% List list=(List)session.getAttribute("shopcar"); if(list==null){ list=new ArrayList(); session.setAttribute("shopcar", list); } out.println("   "+"已經新增"+list.size()+"件商品"); %> <div width="860px"> <% ProductDAO pdao=new ProductDAO(); for(product p:pdao.getAllproducts()){ %> <div class="mybox"> <span><img src="<%=p.getPimage()%>"></span><br> 名字:<span><%=p.getPname()%></span><br> 庫存:<span><%=p.getPquantity()%></span>個<br> 單價:<span>¥<%=p.getPprice()%></span>元<br> <span><a href="shop.jsp?pid=<%=p.getPid()%>">加入購物車</a></span> </div> <% } %> </div> </div> <br> <div> <hr> <a href="showshop.jsp">檢視購物車</a> </div> </body> </html>
2 接著寫一個jsp頁面(shop.jsp)為點選加入購物車的實際操作進行處理:
<%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.huangxu.ProductDAO"%> <%@ page import="com.huangxu.Dao.product"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% int pid=Integer.parseInt(request.getParameter("pid")); ProductDAO pdao=new ProductDAO(); product p=pdao.findProductByID(pid); List shopList=(List)session.getAttribute("shopcar"); if(shopList!=null){shopList.add(p);} response.sendRedirect("imgs.jsp"); %> </body> </html>
3.在寫一個jSP頁面(showshop.jsp)用來處理檢視購物車的實際操作:
<%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.huangxu.ProductDAO"%> <%@ page import="com.huangxu.Dao.product"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <table width="400" border="0" cellpadding="0" cellspacing="1" bgcolor="#00FF66"> <tr bgcolor="#FFFFFF"> <th>序號</td> <th>商品名</td> <th>價格</td> <th>刪除</td> </tr> <% List<product>list=(List)session.getAttribute("shopcar"); float sum=0; if(list!=null) { for(product p:list) {sum =sum+ p.getPprice(); %> <tr bgcolor="#FFFFFF"> <td><%=list.indexOf(p)+1 %></td> <td><%=p.getPname() %></td> <td><%=p.getPprice() %></td> <td><a href="spsc.jsp?xl=<%=list.indexOf(p)%>">刪除商品</a></td> </tr> <% } } %> <tr bgcolor="#FFFFFF"> <td colspan="2">合計</td> <td colspan="2"><%=sum %>元</td> </tr> <tr><td colspan="3"><a href="imgs.jsp">返回商城</a></td></tr> </table> </body> </html>
4、最後是刪除寫一個JSP頁面(spsc.jsp)用來處理刪除的實際操作:
<%@page import="com.sun.corba.se.spi.orbutil.fsm.FSM"%> <%@page import="com.huangxu.Dao.product"%> <%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% float sum=0; int xl=Integer.parseInt(request.getParameter("xl")); List<product>list=(List)session.getAttribute("shopcar"); if(list.remove(xl)!=null){%> <table width="400" border="0" cellpadding="0" cellspacing="1" bgcolor="#00FF66"> <tr bgcolor="#FFFFFF"> <th>序號</td> <th>商品名</td> <th>價格</td> <th>刪除</td> </tr> <% for(product p:list){ sum =sum+ p.getPprice(); %> <tr bgcolor="#FFFFFF"> <td><%=list.indexOf(p)+1 %></td> <td><%=p.getPname() %></td> <td><%=p.getPprice() %></td> <td><a href="spsc.jsp?xl=<%=list.indexOf(p)%>">刪除商品</a></td> </tr> <% } }else{ response.sendRedirect("imgs.jsp");} %> <tr bgcolor="#FFFFFF"> <td colspan="2">合計</td> <td colspan="2"><%=sum %>元</td> </tr> <tr><td colspan="3"><a href="imgs.jsp">返回商城</a></td></tr> </table> </body> </html>
這樣就全部寫完了用session做的一個簡易購物車!
下面附上SQL的表:(在test庫中)建立一個叫product的表
建立語句如下:
CREATE TABLE `product` ( `pid` int(11) NOT NULL AUTO_INCREMENT, `ptype` int(11) DEFAULT NULL, `pname` varchar(50) DEFAULT NULL, `pprice` float DEFAULT NULL, `pquantity` int(11) DEFAULT NULL, `pimage` varchar(100) DEFAULT NULL, `pdesc` varchar(300) DEFAULT NULL, `ptime` time DEFAULT NULL, PRIMARY KEY (`pid`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
下列是表中的資料如圖:
這些就是整個購物車的全部。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45