【高分】jsp 用session 实现购物车功能,不用数据库
使用session对象及其他JSP内置对象实现简单的网上购书系统(不用数据库),至少包括图书的网上购买(添加至购物车,设置选购本数),从购物车删除以及结账等功能,功能尽量与网上购书类似。
应该怎么实现,刚学jsp没有思路
[解决办法]
不用数据库是对问题的简化而不是加难度。
在application域中放所有书的清单,
在session域中放本次购书的记录清单(也就是所谓的购物车),
...
其他不多说了,很多书上都有完整例程的。
CRUD就是数据的增查改删,虽然不必在数据库上做了,但还是需要在存书清单上做的。
[解决办法]
购物车通常都是对本机浏览器的cookie进行读写操作,session是不可取的,特别是服务器负载量比较大的时候。购买确认之后才进行入库操作。
所谓curd就是,creat,update,read,delete,取每个单词首字母的缩写。
[解决办法]
用hashtable,做键值对,或者直接做成泛型对象,放在session里就行了,不过我也同样建议用cookie(注意cookie数量、大小限制)
[解决办法]
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(" ", " ");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");%>
[解决办法]