Session 购物车
在jsp页面导包【Alt+/】
product_list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="CarServlet?id=0"><h3>Iphone7</h3></a><br>
<a href="CarServlet?id=1"><h3>小米6</h3></a><br>
<a href="CarServlet?id=2"><h3>三星Note8</h3></a><br>
<a href="CarServlet?id=3"><h3>魅族7</h3></a><br>
<a href="CarServlet?id=4"><h3>华为9</h3></a><br>
</body>
</html>
CarServlet.java
package com.zhujunwei;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/CarServlet")
public class CarServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
//1、获取要添加到购物车的商品id
int id = Integer.parseInt(request.getParameter("id"));
String[] names = {"Iphone7","小米6","魅族7","华为9"};
String name = names[id];
//2、获取购物车存放东西的session Map<String,Integer> Iphone7 3
//把一个map对象村方法到session里面去,并且保证只存放一次。
@SuppressWarnings("unchecked")
Map<String,Integer> map = (Map<String, Integer>) request.getSession().getAttribute("cart");
//session里面没有存放任何东西
if(map ==null)
{
map = new LinkedHashMap<String, Integer>();
request.getSession().setAttribute("cart", map);
}
//3、判断购物车里面有没有该商品
if(map.containsKey(name))
{
//在原来的值的基础上+1
map.put(name, map.get(name)+1);
}else {
//没有购买过该商品,当前数量为1
map.put(name, 1);
}
//4.输出界面
response.getWriter().write("<a href='product_list.jsp'><h3>继续购物</h3></a><br>");
response.getWriter().write("<a href='cart.jsp'><h3>购物车结算</h3></a><br>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
Cart.jsp
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>您的购物车的商品如下:</h2>
<%
//1、先获取到map
Map<String,Integer> map = (Map<String,Integer>)session.getAttribute("cart");
//2、遍历map
if(map!=null){
for(String key : map.keySet()){
int value = map.get(key);
%>
<h3>名称:<%=key %> 数量:<%=value %></h3>
<%
}
}
%>
<a href="ClearCartServlet">清空购物车</a>
</body>
</html>
ClearCartServlet.java
package com.zhujunwei;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/ClearCartServlet")
public class ClearCartServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.removeAttribute("cart");
response.sendRedirect("cart.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}