发布时间:2023-05-01 15:00
过程及思路
1.利用 session 实现简单的购物车。
2.考虑到加入购物车有名称数量,所以用到HashMap
3.Map接口的常用方法如下:
方法名称 说明
V get(Object key) 返回 Map 集合中指定键对象所对应的值。V 表示值的数据类型
V put(K key, V value) 向 Map 集合中添加键-值对,返回 key 以前对应的 value,如果没有, 则返回 null
V remove(Object key) 从 Map 集合中删除 key 对应的键-值对,返回 key 对应的 value,如果没有,则返回null
Set entrySet() 返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据类型为 Map.Entry
Set keySet() 返回 Map 集合中所有键对象的 Set 集合
上代码:
bookchoose.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
图书选择页面
car.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
购物车
<%
request.setCharacterEncoding("UTF-8");
HttpSession hs = request.getSession();
Map car = (Map)hs.getAttribute("shoppingCar");
//如果回话域没有shoppingcar,则实例化一个
if(car==null){
car = new HashMap();
}
//获取用户的所选择的商品
String[] book = request.getParameterValues("book");
if(book!=null&&book.length>0){
for(String bookname:book){
//判断该物品是否在购物车中
if(car.get(bookname)!=null){
int num = car.get(bookname);
car.put(bookname,num+1);
}else{
car.put(bookname,1);
}
}
}
hs.setAttribute("shoppingCar",car);
response.sendRedirect("carList.jsp");
%>
carList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
图书列表
<%
request.setCharacterEncoding("UTF-8");
HttpSession s=request.getSession();
Map car = (Map)s.getAttribute("shoppingCar");
if(car!=null&&car.size()>0){
out.println("购物车里图书列表:
");
//遍历显示购物车里面的商品
for (String bookname:car.keySet()){
out.println(bookname+","+car.get(bookname)+"
");
}
}else{
out.println("没有商品+
");
}
out.println("继续");
%>
Python数据分析——Matplotlib数据可视化基础(一)
Linux笔记3(用户权限类,搜索查找类,压缩解压类,磁盘管理类,进程管理类,系统定时任务)
MindSpore报错 task_fail_info or current_graph_ is nullptr
从零开始实现lmax-Disruptor队列(四)多线程生产者MultiProducerSequencer原理解析
「Spring Boot 系列」06. Spring Boot 配置文件加载顺序
《React扩展知识一》setState更新状态2种写法/ lazyLoad / Fragment / Context / Hooks