您好,登錄后才能下訂單哦!
小編給大家分享一下怎么用JSP的Session機(jī)制編寫(xiě)購(gòu)物車程序,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
JSP Session 機(jī)制購(gòu)物車之一構(gòu)建的商品類
◆寫(xiě)一個(gè)Goods類,并定義商品的各個(gè)屬性,返回商品屬性的方法,以及商品對(duì)象進(jìn)行比較的方法
◆Goods.java
package com.viita.Shop; public class Goods implements Comparable {
◆初始化各成員變量
private String Id = null;//商品的編號(hào)Id private String name = null;//商品的名稱name private float price = 0.00F;//商品的價(jià)格price private int number = 0;//商品的數(shù)量number public Goods(String Id, String name, float price, int number) { this.Id = Id; this.name = name; this.price = price; this.number = number; } public String getId() //返回訂購(gòu)商品的編號(hào)Id { return this.Id; } public String getName() //返回訂購(gòu)商品的名稱name { return this.name; } public float getPrice() //返回訂購(gòu)商品的價(jià)格price { return this.price; } public int getNumber() //返回訂購(gòu)商品的數(shù)量number { return this.number; } public int compareTo(Object m) { // TODO Auto-generated method stub Goods n = (Goods) m; int comRs = Id.compareTo(n.Id); return comRs; } }
JSP Session 機(jī)制購(gòu)物車之二購(gòu)物車實(shí)現(xiàn)
◆首先建立Goods(商品)對(duì)象goods,并建立建立ArrayList對(duì)象ay
◆通過(guò)ArrayList對(duì)象的方法add()將商品對(duì)象添加到ArrayList對(duì)象ay中
◆由于ArrayList對(duì)象是具有添加和刪除成員的方法,從而實(shí)現(xiàn)多個(gè)商品存儲(chǔ)管理于ArrayList對(duì)象
◆將ArrayList對(duì)象ay存儲(chǔ)于session對(duì)象當(dāng)中,實(shí)現(xiàn)購(gòu)物車功能
◆shopcar.jsp
<%@ page language="java" import=" java.sql.*,com.viita.Shop.*,java.util.*" pageEncoding="GBK"%> <%
◆設(shè)置編碼格式
request.setCharacterEncoding("GBK");
◆獲取參數(shù)信息
String id = request.getParameter("id"); String name = request.getParameter("name"); int number = java.lang.Integer.parseInt(request.getParameter("number")); float price= java.lang.Float.parseFloat(request.getParameter("price"));
◆建立商品對(duì)象和ArrayList對(duì)象
Goods goods = new Goods(id,name,price,number); ArrayList ay = null;
◆如果session中從未寫(xiě)入過(guò),則將建立的商品對(duì)象添加到ArrayList對(duì)象當(dāng)中,并寫(xiě)入 session
if((ArrayList)session.getAttribute("car")==null) { ay = new ArrayList(); ay.add(goods); session.setAttribute("car",ay); response.sendRedirect("order_index.jsp"); }
◆如果寫(xiě)如過(guò),則將商品對(duì)象添加到ArrayList對(duì)象當(dāng)中,并寫(xiě)入 session
else { ay=(ArrayList)session.getAttribute("car");
◆如果ArrayList 對(duì)象為空,則直接添加到ArrayList對(duì)象當(dāng)中
if(ay.isEmpty()) { ay.add(goods); session.setAttribute("car",ay); response.sendRedirect("order_index.jsp"); }
◆如果ArrayList 對(duì)象不為空,則判斷購(gòu)入商品是否已經(jīng)存在于車中
else { Iterator it = ay.iterator(); for(int i = 0;i<ay.size();i++) //下面還有另一種遍歷方法 { Goods shop = (Goods)it.next();
◆如果購(gòu)入商品已經(jīng)存在,則打印輸入提示信息
if(shop.compareTo(goods)==0) { out.println("<script>alert('你已經(jīng)訂購(gòu)了此商品!');window.close();script>"); }
◆如果購(gòu)入商品不存在,則直接將商品添加到ArrayList對(duì)象當(dāng)中,并寫(xiě)入 session
else { ay.add(goods); session.setAttribute("car",ay); response.sendRedirect("order_index.jsp"); } } } } %>
JSP Session 機(jī)制購(gòu)物車之三刪除商品
◆對(duì)購(gòu)物車中的商品進(jìn)行刪除操作
◆removeGoods.jsp
<%@ page language="java" import="java.sql.*,com.viita.Shop.*,java.util.*" pageEncoding="GBK"%> <%
◆設(shè)置編碼格式
request.setCharacterEncoding("gb2313");
◆獲取參數(shù)信息
String id = request.getParameter("id"); String name = request.getParameter("name"); float price = java.lang.Float.parseFloat(request.getParameter("price")); int number = java.lang.Integer.parseInt(request.getParameter("number"));
◆創(chuàng)建符合條件參數(shù)要?jiǎng)h除的商品對(duì)象
Goods goods = new Goods(id,name,price,number);
◆獲取session 中存儲(chǔ)的ArrayList對(duì)象
ArrayList ay = (ArrayList)session.getAttribute("car"); Iterator it = ay.iterator();
◆遍歷ArrayList對(duì)象,并將ArrayList對(duì)象中的元素和創(chuàng)建的符合參數(shù)條件要?jiǎng)h除的商品進(jìn)行比較
for(int i = ay.size();it.hasNext();i--) { Goods shop = (Goods)it.next();
◆查詢是否有ArrayList對(duì)象中的元素與要?jiǎng)h除的商品相同
if(shop.compareTo(goods)==0) { int index = ay.indexOf(shop);
◆如果ArrayList對(duì)象已經(jīng)為空,則跳轉(zhuǎn)
if(ay.isEmpty()) { response.sendRedirect("order_index.jsp"); }
◆如果ArrayList對(duì)象不為空,則從其中移去要與要?jiǎng)h除的商品條件相符的元素,并重新寫(xiě)session
else { ay.remove(index); session.setAttribute("car",ay); response.sendRedirect("order_index.jsp"); } } else { out.print("程序異常"); } } %>
JSP Session 機(jī)制購(gòu)物車是不是使你眼睛豁然一亮的感覺(jué)呢?趕緊開(kāi)始吧,JSP Session機(jī)制的使用期待你的嘗試。
看完了這篇文章,相信你對(duì)“怎么用JSP的Session機(jī)制編寫(xiě)購(gòu)物車程序”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。