The session cookie and java realize the shopping cart and emptied settlement

Just write the code again: the page jump operations, all read the file from the web conducted

web profile

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>demo</servlet-name>
        <servlet-class>com.it.Demo</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo</servlet-name>
        <url-pattern>/CarServlet</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>demo1</servlet-name>
        <servlet-class>com.it.ClearDemo</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo1</servlet-name>
        <url-pattern>/ClearCartServlet</url-pattern>
    </servlet-mapping>
</web-app>
public class Demo extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        resp.setContentType("text/html;charset=utf-8");
        int id = Integer.parseInt(req.getParameter("id"));
        String[] names = {"iphone7", "小米6", "三星note8", "魅族", "华为9"};
        String name = names[id];
        // 先拿map对象,如果没有值默认为null
        Map<String, Integer> cartMap = (Map<String, Integer>) session.getAttribute("cart");
        //  根据这个对象,判断是否是第一次进来
        if (cartMap == null) {
            cartMap = new HashMap<String, Integer>();
            // 如果是第一次进来,就添加一个map对象
            session.setAttribute("cart", cartMap);
        }
        // 判断这个map对象中是否存在手机名称的键
        if (cartMap.containsKey(name)) {
            cartMap.put(name, cartMap.get(name) + 1);
        } else {
            cartMap.put(name, 1);
        }

        System.out.println(cartMap);
        resp.getWriter().write("<a href='index.html'><h3>继续浏览<h3></a><br>");
        resp.getWriter().write("<a href='cart.jsp'><h3>去购物车结算<h3></a><br>");
    }
}
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>首页</title>
</head>
<body>
<a href="/CarServlet?id=0">iphone7</a>
<a href="/CarServlet?id=1">小米6</a>
<a href="/CarServlet?id=2">三星note8</a>
<a href="/CarServlet?id=3">魅族</a>
<a href="/CarServlet?id=4">华为9</a>
</body>
</html>

Get map objects in the session, taking the value of speaking out

<%@ page import="java.util.Map" %>
<%@ page import="java.security.Key" %><%--
  Created by IntelliJ IDEA.
  User: maotouying
  Date: 2019/11/4
  Time: 12:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>购物车</title>
</head>
<body>
        <h2>您的购物车商品如下:</h2>
        <%
            Map<String, Integer> map= (Map<String, Integer>)session.getAttribute("cart");
            // 遍历map
            if (map != null){
                for (String key: map.keySet()){
                    int value = map.get(key);
        %>
                <h3>名称:<%=key%>    数量:<%=value%></h3>
        <%
                }
            }
        %>
            <a href="/ClearCartServlet"><h4>清空购物车</h4></a>

</body>
</html>

Clear the value of the session, the empty cart

public class ClearDemo extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        // 使会话失效
        session.invalidate();
        resp.sendRedirect("cart.jsp");
    }
}

Guess you like

Origin www.cnblogs.com/lishi-jie/p/11791626.html