用JSP的Session机制编写的购物车程序详解

开发 后端
对于使用JSP并使用Session机制的程序员,实现购物车功能的设计思路如何呢?这篇文章将向你在JSP Session机制上实现购物车程序功能上提供一点思路。

用JSP的Session 机制编写的程序就可以是你拥有一个功能强大购物车程序,是不是很诱人呢?赶紧开始我们的程序吧

JSP Session 机制购物车之一构建的商品类

◆写一个Goods类,并定义商品的各个属性,返回商品属性的方法,以及商品对象进行比较的方法

◆Goods.java

  1. package com.viita.Shop;  
  2.  
  3. public class Goods implements Comparable {  
  4.  

◆初始化各成员变量

  1. private String Id = null;//商品的编号Id  
  2. private String name = null;//商品的名称name  
  3. private float price = 0.00F;//商品的价格price  
  4. private int number = 0;//商品的数量number  
  5. public Goods(String Id, String name, float price, int number) {  
  6. this.Id = Id;  
  7. this.name = name;  
  8. this.price = price;  
  9. this.number = number;  
  10.  
  11. }  
  12. public String getId() //返回订购商品的编号Id  
  13. {  
  14. return this.Id;  
  15. }  
  16. public String getName() //返回订购商品的名称name  
  17. {  
  18. return this.name;  
  19. }  
  20. public float getPrice() //返回订购商品的价格price  
  21. {  
  22. return this.price;  
  23. }  
  24. public int getNumber() //返回订购商品的数量number  
  25. {  
  26. return this.number;  
  27. }  
  28. public int compareTo(Object m) {  
  29. // TODO Auto-generated method stub  
  30.  
  31. Goods n = (Goods) m;  
  32. int comRs = Id.compareTo(n.Id);  
  33. return comRs;  
  34.  
  35. }  
  36.  
  37. }  
  38.  

JSP Session 机制购物车之二购物车实现

◆首先建立Goods(商品)对象goods,并建立建立ArrayList对象ay

◆通过ArrayList对象的方法add()将商品对象添加到ArrayList对象ay中

◆由于ArrayList对象是具有添加和删除成员的方法,从而实现多个商品存储管理于ArrayList对象

◆将ArrayList对象ay存储于session对象当中,实现购物车功能

◆shopcar.jsp

  1. <%@ page language="java" import=" java.sql.*,com.viita.Shop.*,java.util.*" pageEncoding="GBK"%> 
  2. <%  
  3.  

◆设置编码格式

  1. request.setCharacterEncoding("GBK");  
  2.  

◆获取参数信息

  1. String id = request.getParameter("id");  
  2. String name = request.getParameter("name");  
  3. int number = java.lang.Integer.parseInt(request.getParameter("number"));  
  4. float pricejava.lang.Float.parseFloat(request.getParameter("price")); 

◆建立商品对象和ArrayList对象

  1. Goods goods = new Goods(id,name,price,number);  
  2. ArrayList ay = null

◆如果session中从未写入过,则将建立的商品对象添加到ArrayList对象当中,并写入 session

  1. if((ArrayList)session.getAttribute("car")==null)  
  2. {  
  3. ay = new ArrayList();  
  4. ay.add(goods);  
  5. session.setAttribute("car",ay);  
  6. response.sendRedirect("order_index.jsp");  

◆如果写如过,则将商品对象添加到ArrayList对象当中,并写入 session

  1. else  
  2. {  
  3. ay=(ArrayList)session.getAttribute("car"); 

◆如果ArrayList 对象为空,则直接添加到ArrayList对象当中

  1. if(ay.isEmpty())  
  2. {  
  3. ay.add(goods);  
  4. session.setAttribute("car",ay);  
  5. response.sendRedirect("order_index.jsp");  

◆如果ArrayList 对象不为空,则判断购入商品是否已经存在于车中

  1. else  
  2. {  
  3. Iterator it = ay.iterator();  
  4. for(int i = 0;i<ay.size();i++) //下面还有另一种遍历方法  
  5. {  
  6. Goods shop = (Goods)it.next(); 

◆如果购入商品已经存在,则打印输入提示信息

  1. if(shop.compareTo(goods)==0)  
  2. {  
  3. out.println("<script>alert('你已经订购了此商品!');window.close();script>");  

◆如果购入商品不存在,则直接将商品添加到ArrayList对象当中,并写入 session

  1. else  
  2. {  
  3. ay.add(goods);  
  4. session.setAttribute("car",ay);  
  5. response.sendRedirect("order_index.jsp");  
  6. }  
  7. }  
  8. }  
  9. }   
  10. %> 

JSP Session 机制购物车之三删除商品

◆对购物车中的商品进行删除操作

◆removeGoods.jsp

  1. <%@ page language="java" import="java.sql.*,com.viita.Shop.*,java.util.*" pageEncoding="GBK"%> 
  2. <%  

◆设置编码格式

  1. request.setCharacterEncoding("gb2313"); 

◆获取参数信息

  1. String id = request.getParameter("id");  
  2. String name = request.getParameter("name");  
  3. float price = java.lang.Float.parseFloat(request.getParameter("price"));  
  4. int number = java.lang.Integer.parseInt(request.getParameter("number")); 

◆创建符合条件参数要删除的商品对象

  1. Goods goods = new Goods(id,name,price,number); 

◆获取session 中存储的ArrayList对象

  1. ArrayList ay = (ArrayList)session.getAttribute("car");  
  2. Iterator it = ay.iterator(); 

◆遍历ArrayList对象,并将ArrayList对象中的元素和创建的符合参数条件要删除的商品进行比较

  1. for(int i = ay.size();it.hasNext();i--)  
  2. {  
  3. Goods shop = (Goods)it.next(); 

◆查询是否有ArrayList对象中的元素与要删除的商品相同

  1. if(shop.compareTo(goods)==0)  
  2. {  
  3. int index = ay.indexOf(shop);  

◆如果ArrayList对象已经为空,则跳转

  1. if(ay.isEmpty())  
  2. {  
  3. response.sendRedirect("order_index.jsp");  

◆如果ArrayList对象不为空,则从其中移去要与要删除的商品条件相符的元素,并重新写session

  1. else  
  2. {  
  3. ay.remove(index);  
  4. session.setAttribute("car",ay);  
  5. response.sendRedirect("order_index.jsp");  
  6. }  
  7. }  
  8. else  
  9. {  
  10. out.print("程序异常");  
  11. }  
  12. }  
  13. %> 

JSP Session 机制购物车是不是使你眼睛豁然一亮的感觉呢?赶紧开始吧,JSP Session机制的使用期待你的尝试。

【编辑推荐】

  1. 基于JSP实现数据库中图片的存储与显示
  2. JSP教程基础篇之JSP的技术特点
  3. JSP入门需要知道的五个方面
  4. JSP教程基础知识之JSP2.0特性
  5. JSP教程之访问量计数JSP源码
责任编辑:仲衡 来源: 电子工业出版社
相关推荐

2009-07-07 15:57:29

JSP购物车

2009-07-08 15:01:00

Servlet Ses

2022-12-16 08:52:14

购物车系统存储

2015-08-03 11:48:12

购物车动画

2017-11-06 09:10:56

程序员数据行业

2012-01-09 13:55:35

Java

2022-06-28 14:42:26

ETS购物车应用

2009-07-02 13:10:09

JSP技术

2018-05-28 09:53:12

京东购物车Java

2024-04-07 10:07:52

2009-07-01 18:01:20

JSP代码块缓冲OSCache

2022-09-13 16:01:13

购物车京东接口

2012-10-08 11:18:05

JavaMVC项目

2009-08-03 10:11:44

JSP开发环境配置

2009-07-06 09:49:26

Servlet JSP

2009-07-01 18:17:32

JSP处理Cookie

2009-07-06 13:52:56

编写JSP Tag

2010-12-07 09:50:46

JSP

2020-04-24 15:44:50

MySQL数据库锁机制

2009-07-02 14:39:27

Session的值JSP Asp.net
点赞
收藏

51CTO技术栈公众号