首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jsp 用session 实现购物车功能,不用数据库

2012-09-01 
【高分】jsp 用session 实现购物车功能,不用数据库使用session对象及其他JSP内置对象实现简单的网上购书系统

【高分】jsp 用session 实现购物车功能,不用数据库
使用session对象及其他JSP内置对象实现简单的网上购书系统(不用数据库),至少包括图书的网上购买(添加至购物车,设置选购本数),从购物车删除以及结账等功能,功能尽量与网上购书类似。
应该怎么实现,刚学jsp没有思路

[解决办法]
不用数据库是对问题的简化而不是加难度。
在application域中放所有书的清单,
在session域中放本次购书的记录清单(也就是所谓的购物车),
...
其他不多说了,很多书上都有完整例程的。

CRUD就是数据的增查改删,虽然不必在数据库上做了,但还是需要在存书清单上做的。
[解决办法]

购物车通常都是对本机浏览器的cookie进行读写操作,session是不可取的,特别是服务器负载量比较大的时候。购买确认之后才进行入库操作。


所谓curd就是,creat,update,read,delete,取每个单词首字母的缩写。
[解决办法]
用hashtable,做键值对,或者直接做成泛型对象,放在session里就行了,不过我也同样建议用cookie(注意cookie数量、大小限制)
[解决办法]

HTML code
beans包中有bookelement,chStr.package beans;public class bookelement {public String ISBN;  public float price;  public int number;  public bookelement()  {  }}package beans;public class chStr {public chStr(){}public String chStr(String str){if(str == null){str = "";} else{try{str = (new String(str.getBytes("iso-8859-1"), "GB2312")).trim();}catch(Exception e){e.printStackTrace(System.err);}}return str;}public String convertStr(String str1){if(str1 == null){str1 = "";} else{try{str1 = str1.replaceAll(" ", "&nbsp;");str1 = str1.replaceAll("\r\n", "<br>");}catch(Exception e){e.printStackTrace(System.err);}}return str1;}}<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><%@ page import="java.util.Vector"%><%@ page import="beans.bookelement"%><jsp:useBean id="connDB" scope="page" class="beans.connDB"/><jsp:useBean id="chStr" scope="page" class="beans.chStr"/><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>添加购物车</title></head><body><%String ISBN=chStr.chStr(request.getParameter("ISBN"));String sql="select * from tb_bookinfo where ISBN='"+ISBN+"'";ResultSet rs=connDB.executeQuery(sql);float price=0;if(rs.next()){price=rs.getInt("price");}bookelement mybookelement=new bookelement();mybookelement.ISBN=ISBN;mybookelement.price=price;mybookelement.number=1;boolean Flag=true;Vector cart=(Vector)session.getAttribute("cart");if(cart==null){cart=new Vector();}else{for(int i=0;i<cart.size();i++){bookelement bookitem=(bookelement)cart.elementAt(i);if(bookitem.ISBN.equals(mybookelement.ISBN)){ //此处必须用equals方法,不能用==bookitem.number++;cart.setElementAt(bookitem,i);Flag=false;}}}if(Flag)cart.addElement(mybookelement);session.setAttribute("cart",cart);rs.close();response.sendRedirect("cart_see.jsp");%>
[解决办法]
探讨
引用:

这个购物车项目我们刚刚做完,名字叫做"bookstore"


不就购物车么 还作为项目 EJB3里 直接用 有状态BEAN 几句话搞定的东西。。。

[解决办法]
其实挺简单的,如果你不需要用户退出后数据依然存在的话,那直接用jsp就可以完成了。
1.首先定义物品,一种物品有ID,NAME,PRICE这3中属性
2.选购页面定义一个map,key为物品的id,value为物品的数量。在点击提交之后,将此map存入session中
3.提交页面获取session中的map,依次取出map中的key值和value值,再去寻找对应key的物品的id,用value中的值来计算price。这样页面就可以显示出购物车中购买的东西数量、名称、价格已经物品总价了。
楼主可以试试。
[解决办法]
为什么不存到数据库呢?如果你关掉了浏览器,下一次进入的时候购物车不就没有东西了,如果我想购买以前购物车的东西怎么办,建议用数据库或者cookie来保存购物车的内容

热点排行