一、实验目的
- 熟练使用集合中数据的操作方法,如保存、遍历蛋糕对象(Cake)。
- 掌握运用Servlet动态展示数据列表的方法。
- 掌握创建Session对象的方法,并能设置或获取会话数据。
- 掌握设置Session和Cookie生命周期的方法。
二、实验环境
IDEA2019、Windows10、Servlet、HTML。
三、实验步骤
(1)以购买蛋糕为例,首先创建蛋糕对象(包括属性和方法),并存储到MAP集合中。
(2)运用Servlet展示集合中的所有蛋糕列表,增加超级链接。
(3)通过URL地址栏发送请求,并传送ID参数,Servlet判断id值,如果存在,则创建Session对象和购物车对象,并将选择的蛋糕加入到购物车,否则重定向到蛋糕列表。
(4)为确保Session对象的有效性,要相应的设置“JSESSIONID”的Cookie 有效周期的与Session一致。
(5)Servlet遍历购物车的数据,展示所有购买的蛋糕。
模拟购物的整个流程如下:

四、实验过程(关键代码)
1.对于蛋糕属性和方法的定义,具体代码如图1所示。

2.对于购买的操作,文件名为PurchaseServlet,代码内容如图2所示。

3.因为是简单模拟,所以创建一个CakeDB的类文件来模拟数据库,其代码内容如图3所示。

4.对于本次实验的首页入口,名为ListCakeServlet,其代码如图4所示。

5.对于购物车相关操作,文件名为CartServlet,代码内容如图5所示。

五、实验结果与分析
1.运行项目,通过在URL末端输入项目首页入口ListCakeServlet,可以显示蛋糕列表,如图6所示。

2.在图6所示的界面中点击B类蛋糕的“点击购买”按钮,此时跳转到了购物车的页面,即为CartServlet,结果如图7所示。

3.单击后退按钮,再次点击“D类蛋糕”右侧的“点击购买”按钮,此时会返回到购物车的页面,同时D类蛋糕增加到购物车中,结果如图8所示。
