用 Jsp 的 Session 机制编写的购物车程序
来源:互联网 发布:雷电模拟器网络延迟 编辑:程序博客网 时间:2024/06/04 23:29
//写一个Goods类,并定义商品的各个属性,返回商品属性的方法,以及商品对象进行比较的方法
//Goods.java
package com.viita.Shop;
public class Goods implements Comparable {
// 初始化各成员变量
private String Id = null;//商品的编号Id
private String name = null;//商品的名称name
private float price = 0.00F;//商品的价格price
private int number = 0;//商品的数量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() //返回订购商品的编号Id
{
return this.Id;
}
public String getName() //返回订购商品的名称name
{
return this.name;
}
public float getPrice() //返回订购商品的价格price
{
return this.price;
}
public int getNumber() //返回订购商品的数量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;
}
}
二、购物车
//首先建立Goods(商品)对象goods,并建立建立ArrayList对象ay
//通过ArrayList对象的方法add()将商品对象添加到ArrayList对象ay中
//由于ArrayList对象是具有添加和删除成员的方法,从而实现多个商品存储管理于ArrayList对象
//将ArrayList对象ay存储于session对象当中,实现购物车功能
//shopcar.jsp
<%@ page language="java" import=" java.sql.*,com.viita.Shop.*,java.util.*" pageEncoding="GBK"%>
<%
//设置编码格式
request.setCharacterEncoding("GBK");
//获取参数信息
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"));
//建立商品对象和ArrayList对象
Goods goods = new Goods(id,name,price,number);
ArrayList ay = null;
//如果session中从未写入过,则将建立的商品对象添加到ArrayList对象当中,并写入 session
if((ArrayList)session.getAttribute("car")==null)
{
ay = new ArrayList();
ay.add(goods);
session.setAttribute("car",ay);
response.sendRedirect("order_index.jsp");
}
//如果写如过,则将商品对象添加到ArrayList对象当中,并写入 session
else
{
ay=(ArrayList)session.getAttribute("car");
//如果ArrayList 对象为空,则直接添加到ArrayList对象当中
if(ay.isEmpty())
{
ay.add(goods);
session.setAttribute("car",ay);
response.sendRedirect("order_index.jsp");
}
//如果ArrayList 对象不为空,则判断购入商品是否已经存在于车中
else
{
Iterator it = ay.iterator();
for(int i = 0;i<ay.size();i++) //下面还有另一种遍历方法
{
Goods shop = (Goods)it.next();
//如果购入商品已经存在,则打印输入提示信息
if(shop.compareTo(goods)==0)
{
out.println("<script>alert('你已经订购了此商品!');window.close();</script>");
}
//如果购入商品不存在,则直接将商品添加到ArrayList对象当中,并写入 session
else
{
ay.add(goods);
session.setAttribute("car",ay);
response.sendRedirect("order_index.jsp");
}
}
}
}
%>
三、删除商品
//对购物车中的商品进行删除操作
//removeGoods.jsp
<%@ page language="java" import="java.sql.*,com.viita.Shop.*,java.util.*" pageEncoding="GBK"%>
<%
//设置编码格式
request.setCharacterEncoding("gb2313");
//获取参数信息
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"));
//创建符合条件参数要删除的商品对象
Goods goods = new Goods(id,name,price,number);
//获取session 中存储的ArrayList对象
ArrayList ay = (ArrayList)session.getAttribute("car");
Iterator it = ay.iterator();
//遍历ArrayList对象,并将ArrayList对象中的元素和创建的符合参数条件要删除的商品进行比较
for(int i = ay.size();it.hasNext();i--)
{
Goods shop = (Goods)it.next();
//查询是否有ArrayList对象中的元素与要删除的商品相同
if(shop.compareTo(goods)==0)
{
int index = ay.indexOf(shop);
//如果ArrayList对象已经为空,则跳转
if(ay.isEmpty())
{
response.sendRedirect("order_index.jsp");
}
//如果ArrayList对象不为空,则从其中移去要与要删除的商品条件相符的元素,并重新写session
else
{
ay.remove(index);
session.setAttribute("car",ay);
response.sendRedirect("order_index.jsp");
}
}
else
{
out.print("程序异常");
}
}
%>
- 用 Jsp 的 Session 机制编写的购物车程序
- session做的购物车程序
- 用servlet实现一个简单的购物车程序
- Session ArrayList 实现购物车程序
- 鄙人最近搞的js购物车程序
- 一个很给力的js购物车程序
- python简单的购物车程序(含代码)
- python编程实例-一个简单的购物车程序
- 用java代码写一个简单的网上购物车程序
- 购物车程序
- 网上购物车程序
- python-购物车程序
- PHP/MySQL 购物车程序
- python实现购物车程序
- Zen Cart、电子商务、购物车程序
- Javascript利用Cookie实现购物车程序
- python 购物车程序 作业2
- 【自定义session】编写可切换的自定义session机制
- Linux 2.4.x 网络协议栈QoS模块(TC)的设计与实现(转)
- Nslookup 子命令
- /"控件必须放在具有 runat=server 的窗体标记内/"错误的解决方法
- 八皇后问题--递归
- houghlines的例子
- 用 Jsp 的 Session 机制编写的购物车程序
- 基于HttpSessionListener接口的在线用户统计
- hiberante中使用复合主键
- EXCEL表用SQL查询的BUG
- Meta的http-equiv属性详解
- Eclipse工具下开发Struts解决乱码的问题
- apache2.29+svn1.5.2 windowsXP下配置成功!
- hibernate+javabean经典错误
- Java Virtual Machine Launcher