假如我们要做一个简单的购物车,首先分析下购物车的组成部分.假使我们现在只需要两个属性,一个是商品的实体,另一个是商品的数量.业务中可以利用简单的map集合来实现购物车通过分析我们知道,如果想获取用户的购物车,且是自己的购物车,里面寄存了我们曾购买的物品属性和数量,我们想到了session这个对象,先来了解下session,以下资料借鉴网络
一个session就是一系列某用户和服务器间的通讯。服务器有能力分辨出不同的用户。一个session的建立是从一个用户向服务器发第一个请求开始,而以用户显式结束或session超时为结束。
其工作原理是这样的:
1.当一个用户向服务器发送第一个请求时,服务器为其建立一个session,并为此session创建一个标识号;
2.这个用户随后的所有请求都应包括这个标识号。服务器会校对这个标识号以判断请求属于哪个session。
这种机制不使用IP作为标识,是因为很多机器是通过代理服务器方式上网,没法区分每一台机器。
对于session标识号(sessionID),有两种方式实现:cookies和URL重写。
简单的了解之后,先分析下思路,当用户点击”加入到购物车”时,假使我从session取得购物车,首先要判断用户是不是第一次购物,如果是第一次购物,我们需要为用户创建购物车,如果不是则需要判断用户所选择的商品购物车里有没有(我们可以获取map的对象,我们迭代里面的商品,通过OID判断是不是为同一商品,或者通过其他方法获取到商品),如果没有我们需要在购物车里添加商品,如果有的话我们去得商品的数量,再+,在放回购物车里即可完成一次购物.最后把购物车放在session域中.代码实现如下:
JSP页面源代码为:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="cn.itcast.utils.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'product.jsp' starting page</title>
</head>
<body>
<h1>购物页面</h1>