使用JSON将购物车中的对象存到Cookie中
来源:互联网 发布:win10自带看图软件 编辑:程序博客网 时间:2024/06/04 18:20
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); //取出数据 String bookId = request.getParameter("bookId"); String bookName = request.getParameter("bookName"); String bookPrice = request.getParameter("bookPrice"); String bookPriceOld = request.getParameter("bookPriceOld"); //1.从cookie中取出json对象 Cookie[] cookies = request.getCookies(); String jsonStr = null; if (cookies != null) { for (Cookie c : cookies) { if (c.getName().equals("shopCart")) { jsonStr = URLDecoder.decode(c.getValue(),"utf-8"); } } } ArrayList<BookInfo> shopArray = new ArrayList<BookInfo>(); //2.判断jsonStr是否为空 if (jsonStr == null) { //2.1若为空,表示购物车中没有任何东西 可直接加入 //构造图书对象 BookInfo book = new BookInfo(); book.setBookId(Integer.parseInt(bookId)); book.setBookName(bookName); book.setBookPrice(Double.parseDouble(bookPrice)); book.setBookPriceOld(Double.parseDouble(bookPriceOld)); book.setNum(1); //将数据存入集合ArrayList中 shopArray.add(book); //将集合数据存入json中 } else { //2.2不为空,表示有数据,解析出来后再判断将某一个book对象的num加1 //json字符串为 jsonStr JSONObject jb = JSONObject.fromObject(jsonStr); JSONArray ja = jb.getJSONArray("shopArray"); boolean isExist = false; for (int i = 0; i < ja.size(); i++) { BookInfo b = new BookInfo(); int bId = ja.getJSONObject(i).getInt("bookId"); int num = ja.getJSONObject(i).getInt("num"); b.setBookId(bId); b.setBookName(ja.getJSONObject(i).getString("bookName")); b.setBookName(ja.getJSONObject(i).getString("bookName")); b.setBookPrice(ja.getJSONObject(i).getDouble("bookPrice")); b.setBookPriceOld(ja.getJSONObject(i).getDouble( "bookPriceOld")); if (bId == Integer.parseInt(bookId)) { isExist = true; num++; } b.setNum(num); shopArray.add(b); } if (!isExist) { BookInfo book = new BookInfo(); book.setBookId(Integer.parseInt(bookId)); book.setBookName(bookName); book.setBookPrice(Double.parseDouble(bookPrice)); book.setBookPriceOld(Double.parseDouble(bookPriceOld)); book.setNum(1); shopArray.add(book); } } //将ArrayList中的数据转换成json JSONObject jsonObj = new JSONObject(); JSONArray jsonArray = JSONArray.fromObject(shopArray); jsonObj.put("shopArray", jsonArray); String jsonDataStr = jsonObj.toString(); //存入cookie Cookie shopCartCookie = new Cookie("shopCart", URLEncoder.encode(jsonDataStr, "utf-8")); shopCartCookie.setMaxAge(60 * 60 * 24 * 7); response.addCookie(shopCartCookie); response.sendRedirect("cart.jsp"); }
json解析数据相关jar包—–>在这里下载
2 0
- 使用JSON将购物车中的对象存到Cookie中
- JSON类型数据转换为对象,并排除指定的属性.JAVA将购物车数据写入到cookie中
- 将所有对象存到数据库中
- Ext主题更换并将结果存到Cookie中
- ASP.NET实例:利用对象序列化将购物车保存在Cookie中
- 利用对象序列化将购物车保存在Cookie中
- 利用对象序列化将购物车保存在Cookie中
- 浅谈购物车中cookie的使用
- 将自定义对象作为元素存到TreeSet集合中
- java将序列化对象存到文件中
- 使用Backbone将两个json对象合并到一个Collection对象中
- 将txt中的数据存到Sql数据表中
- Cookie及Redis在商城购物车系统中的使用
- Javascript购物车 操作Cookie存取Json
- 使用cookie实现购物车
- EasyUI插件使用案例----将商品拖动到购物车
- 将自定义对象存到文件
- NSSet 与 NSArray 区别,小技巧,set过滤重复的对象,可以用将数组中的对象遍历出来存到 set 中,就过滤了.
- 浅谈访问权限修饰符
- stm32 F103ZE 中定时器的总结
- C++中的override
- 蓝鸥 8.22
- javascript DOM扩展
- 使用JSON将购物车中的对象存到Cookie中
- python vim开发环境搭建
- adduser 和 useradd的区别
- Ubuntu linux 更换openjdk
- Socket通信中遇到的一些小问题(未解决)
- c语言地址指针的基本概念
- 【树11】把二叉树打印成多行
- pycharm安装第三方包与插件
- 华为OJ 查找组成一个偶数最接近的两个素数