• 使用session实现一个简单的购物车


    Html页面: 

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>图书选择页面</title>
    </head>
    <body>
    <form action="Experiment/Car" method="post">
        <input type="checkbox" name="book" value="java"/>java<br>
        <input type="checkbox" name="book" value="javaweb"/>javaWeb<br>
        <input type="checkbox" name="book" value="python"/>python<br>
        <input type="submit" name="登录"/>
    
    </form>
    </body>
    </html>

     

    实现购物车的功能:

    package Experiment;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.HashMap;
    import java.util.Map;
    
    public class Car extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doPost(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding("UTF-8");
            resp.setContentType("text/html,chardrt=UTF-8");
            PrintWriter out = resp.getWriter();
            HttpSession hs = req.getSession();
            Map<String,Integer> car = (Map<String, Integer>)hs.getAttribute("shoppingCar");
            //如果回话域没有shoppingcar,则实例化一个
            if(car==null){
                car = new HashMap<String, Integer>();
            }
            //获取用户的所选择的商品
            String[] book = req.getParameterValues("book");
    //        if(book!=null&&book.length>0){
    //            for(int i=0;i<book.length;i++){
    //                out.println(book[i]);
    //            }
    //        }
            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);
            resp.sendRedirect("http://localhost:8080/javaWeb_war_exploded/Experiment/CarList");
        }
    }
    

    从会话域中取出购物车,并对购物车进行遍历显示。

    package Experiment;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Map;
    
    public class CarList extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doPost(req, resp);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding("UTF-8");
            resp.setContentType("text/html,charset=UTF-8");
    
            PrintWriter out = resp.getWriter();
            HttpSession session = req.getSession();
            Map<String,Integer> car = (Map<String, Integer>)session.getAttribute("shoppingCar");
            if(car!=null&&car.size()>0){
                out.println("your car list:<br>");
                //遍历显示购物车里面的商品
                for (String bookname:car.keySet()){
                    out.println(bookname+","+car.get(bookname)+"<br>");
                }
            }else{
                out.println("no goods+<br>");
            }
            out.println("<a href = 'http://localhost:8080/javaWeb_war_exploded/BookChoose.jsp'>keep going");
        }
    }
    

     

     
  • 相关阅读:
    属性可以通过下拉菜单选择的WebPart示例
    排序规则害死人,问个问题
    编写一个Flash播放器的WebPart
    在我的网站上开通了WebPart演示和下载列表。
    如何编写一个自动投票程序
    如何在url中引用域的内容呢?
    创建一个自定义ToolPart
    Linux下JNI的使用
    Android学习——ActivityManager与Proxy模式的运用
    Android中Adapter和Bridge模式理解和应用
  • 原文地址:https://www.cnblogs.com/zhahu/p/11931376.html
Copyright © 2020-2023  润新知