zoukankan      html  css  js  c++  java
  • 【Tomcat】JSP使用Session、Cookie实现购物车

    购物界面shop.jsp

    初始页面
    在这里插入图片描述
    添加商品后,在session中设置属性,重定向回到shop.jsp,然后根据session的内容显示结果
    Cookie设置setMaxAge可以延长session的寿命
    清空购物车就是清除session
    在这里插入图片描述

    <%@ page import="javax.jms.Session" %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.net.URLDecoder" %><%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2019/8/12
      Time: 10:37
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>购物</title>
        <style>
            #big{
                margin-left: 200px;
            }
            .pro img,.pro2 img{
                width: 200px;
                height: 200px;
                display: block;
                margin: 20px;
            }
            a{
                border: 2px solid black;
                border-radius: 5px;
                font-weight: bold;
                font-size: 16px;
                color: black;
            }
            a:link{
                text-decoration: none;
            }
            a:visited{
                color: black;
            }
            a:hover{
                color: green;
            }
            a:active{
                text-decoration: underline;
            }
            .pro a{
                margin-left: 20px;
                background-color: pink;
            }
            .pro2 a{
                margin-right: 20px;
                background-color: greenyellow;
            }
            .pro,.pro2{
                float: left;
                text-align: center;
            }
            .rec{
                position: relative;
                top: 20px;
                padding: 20px;
                width: 80%;
                height: 400px;
                border: solid 2px gray;
                clear: both;
            }
            span{
                font-family: "Adobe 黑体 Std R";
                font-weight: bold;
            }
            #empty{
                background-color: red;
            }
        </style>
    </head>
    <body>
    <div id="big">
    <div class="pro" name="book"><img src="img/book01.jpg">
        <span></span><a href="addpro?id=1">加入购物车</a></div>
    <div class="pro"><img src="img/cloth01.jpg">
        <span>衣服</span><a href="addpro?id=2">加入购物车</a></div>
    <div class="pro" name="mod"><img src="img/mod01.jpg">
        <span>口红</span><a href="addpro?id=3">加入购物车</a></div>
    <div class="rec">
        <span>我的购物车</span>
        <a href="addpro?id=del" id="empty">清空购物车</a><br>
        <%
            String[] strs={"书","衣服","口红"};
            HttpSession session1 = request.getSession();
            Enumeration<String> names = session1.getAttributeNames();
            while (names.hasMoreElements()){
                String n=names.nextElement();
                Object attribute = session1.getAttribute(n);
                if(n.equals("1")){
                    %>
        <div class="pro2" name="book"><img src="img/book01.jpg">
            <a href="addpro?id=1">数量+1</a><span><%=strs[0]+"有"+session1.getAttribute(n)+"件"%></span></div>
                    <%
                }else if(n.equals("2")){
                    %>
        <div class="pro2" name="book"><img src="img/cloth01.jpg">
            <a href="addpro?id=2">数量+1</a><span><%=strs[1]+"有"+session1.getAttribute(n)+"件"%></span></div>
        <%
                }else if(n.equals("3")){
        %>
        <div class="pro2" name="book"><img src="img/mod01.jpg">
            <a href="addpro?id=3">数量+1</a><span><%=strs[2]+"有"+session1.getAttribute(n)+"件"%></span></div>
        <%
                }
                System.out.println(n+"有"+attribute+"件");
            }
            System.out.println("-----------");
        %>
    </div>
    </div>
    </body>
    </html>
    
    

    Servlet

    package com.blb.cookie.shop;
    
    import jdk.nashorn.internal.ir.CallNode;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.*;
    import java.io.IOException;
    import java.net.URLDecoder;
    import java.net.URLEncoder;
    import java.util.Enumeration;
    
    @WebServlet("/addpro")
    public class AddProServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String proid = request.getParameter("id");
            //获取session
            HttpSession session = request.getSession();
            if ("del".equals(proid)) {
                session.invalidate();
            } else {
    
                String sid = session.getId();
                Cookie cookie1 = new Cookie("JSESSIONID", sid);
                cookie1.setMaxAge(60 * 60);
                response.addCookie(cookie1);
                Enumeration<String> names = session.getAttributeNames();
                Boolean hava = false;
                if (!names.hasMoreElements()) {
                    session.setAttribute(proid, 1);
                }
                while (names.hasMoreElements()) {
                    String n = names.nextElement();
    //                System.out.println("name:" + n);
                    if (n.equals(proid)) {
                        hava = true;
                        Object attribute = session.getAttribute(n);
    //                    System.out.println("atrr:" + attribute);
                        int a = (Integer) attribute;
                        int b = a + 1;
    //                    System.out.println("attr++:" + b);
                        session.removeAttribute(n);
                        session.setAttribute(n, b);
                    }
                }
                if (!hava) {
                    session.setAttribute(proid, 1);
                }
              /*  System.out.println(proid);
                System.out.println(session);
                System.out.println("addpro*******");*/
            }
            response.sendRedirect("shop.jsp");
        }
    }
    
    
  • 相关阅读:
    mysql-基础和基本指令
    网络笔试面试
    Windows访问Linux下的共享目录的配置方法
    帧动画 连续播放多张图片动画 以及ui动画 SoundPool
    ScrollView listView gridView 之间的冲突问题
    handler------post传送方式
    handler通信机制
    内部存储 openFileInputStream openFileOutputStream
    popupMenu-----弹出菜单
    为系统菜单添加图标--------暴力反射
  • 原文地址:https://www.cnblogs.com/BIG-BOSS-ZC/p/11807338.html
Copyright © 2011-2022 走看看