溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用JSP的Session機(jī)制編寫(xiě)購(gòu)物車程序

發(fā)布時(shí)間:2021-11-22 11:45:31 來(lái)源:億速云 閱讀:257 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下怎么用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è)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI