用cookie实现购物车功能,购物车已存在该商品则不重复添加,不存在则添加进去,最后打印出购物车中的商品。
1.xg.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
商品选购
《西游记》 罗贯中著,正版。 49¥
热水器海尔正品保证,十分钟速热。 1999¥
空调奥克斯空调,三十年品质保障,让你买的实惠用得放心。 2999¥
查看购物车
2.xyj.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
西游记
商品名称:《西游记》
《西游记》 49¥ 正版发售。人民出版社
加入购物车
返回上一页
简介:
《西游记》是中国古典四大名著之一,由吴承恩编写而成。
此书描写的是孙悟空、猪八戒、沙悟净保护唐僧西天取经的传奇故事。
作者吴承恩运用浪漫主义手法,翱翔着无比丰富的想象的翅膀,描绘了一个色彩缤纷、
神奇瑰丽的幻想世界,创造了一系列妙趣横生、引人入胜的神话故事,
成功地塑造了孙悟空这个超凡入圣的理想化的英雄形象。
3.rsq.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
海尔热水器
商品名称:海尔热水器
海尔热水器 参考价:1999¥ 正品保证。16升水气双调恒温燃气热水器
颜色: 轻奢金
容积:16升 能效等级:2级
气源:天然气,水气双调 节能省气
WiFi智能 五重抑菌
加入购物车
返回上一页
4.kt.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
奥克斯空调
商品名称:奥克斯空调
奥克斯空调 参考价:2999¥ 正品保证。奥克斯 KFR-35GW/BpSFA-3 空调
主要参数:
空调类型:挂式空调 产品功率:大1.5P
变频:是 冷暖类型:冷暖型
能效级别:3级 控制方式:遥控
加入购物车
返回上一页
5.tz.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%%>
加入购物车成功!
三秒后自动跳转.......
6.cu.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
购物车中已存在!
三秒后自动跳转.......
7.purchase.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
购物车
欢迎亲亲查看购物车
<%String[] products = {"西游记","海尔热水器","奥克斯空调","华为荣耀8X全面屏手机","java SE基础教程"};
//得到所有的cookie
cookie[] cookies = request.getcookies();
//对cookies进行遍历
if(cookies!=null){
response.getWriter().println("亲亲,您的购物车清单如下:
");
for(cookie co:cookies){
for(int i=0;i ");
}
}
}
} %>
返回
8.shoppingservlet
package shopping;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
public class shoppingservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public shoppingservlet() {
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("textml;charset=utf-8");
int count = 0;
cookie cookie = new cookie("cookie","a");
cookie.setMaxAge(60);
response.addcookie(cookie); //将session作为新的cookie添加到浏览器
//拿到用户本次点击的商品标识id
String id = request.getParameter("id");
String value = null;
//定义一个商品数组
String[] products = {"西游记","海尔热水器","奥克斯空调","华为荣耀8X全面屏手机","java SE基础教程"};
cookie[] cookies1 = request.getcookies(); //得到所有的cookie
if(cookies1!=null){
for(cookie co:cookies1){
//对cookies1进行遍历,如果有名为改书籍的cookie就拿出来
if(co.getName().equals("product"+(Integer.parseInt(id)))){
value = co.getValue(); //这个值应该是书籍的数量
//判断拿出来的value是不是为空---不管他是不是空的,我都要给他加1个
count = Integer.parseInt(value);
if(count>=0) {
//response.setHeader("location","cu.jsp");
response.sendRedirect("cu.jsp");
return;
}
}
else
{
count=1;
//因为第一次点击他是绝对不会存在的,所以...
}
}
}
cookie cookie1 = new cookie("product"+(Integer.parseInt(id)),""+count);
response.addcookie(cookie1);
response.sendRedirect("tz.jsp");
//并且将新的值传回浏览器
// cookie cookie1 = new cookie("product"+(Integer.parseInt(id)),""+count);
// response.addcookie(cookie1);
//
// response.sendRedirect("tz.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
9.程序截图



