zoukankan      html  css  js  c++  java
  • java中的session和cookie实现购物车的结算和清空

    只写了一遍的代码:页面的跳转操作,全部是从web文件中读取进行的

    web配置文件

    <?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>
    
    

    获取session中的map对象,讲值取出来

    <%@ 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>
    

    清除session中的值,清空购物车

    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");
        }
    }
    
    
  • 相关阅读:
    常见二叉树问题
    leetcode上回溯法的使用
    搜索+回溯
    navicat连接登录windows10本地wsl的数据库
    皇后问题
    拓扑排序
    三路排序算法
    在 ServiceModel 客户端配置部分中,找不到引用协定“WebServiceTest.WebServiceSoap”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素
    WCF异常信息
    C# 制作ZIP压缩包
  • 原文地址:https://www.cnblogs.com/lishi-jie/p/11791626.html
Copyright © 2011-2022 走看看