0
点赞
收藏
分享

微信扫一扫

Javaweb构建一个小型的购物车模块,源代码开源

郝春妮 2022-03-24 阅读 30

小型购物车模块

1.Arms.java

package top.imustshop;

import java.io.Serializable;

/**
 * @author dahe
 * @version 1.0
 * @ no since
 * @ 军火库商品的setter&getter类
 * @ 属性:id,name(军火编号,军火名称)
 */

public class Arms implements Serializable {
    /**
     * 序列化的版本号
     */
    private static final long serialVersionUID=1L;
    /**
     * 属性:id,name
     */
    private String id;
    private String name;
    public Arms(){
    }
    public Arms(String id ,String name){
        this.id=id;
        this.name=name;
    }
    public String getId(){
        return id;
    }
    public void setId(String id){
        this.id=id;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }

}

2.ArmsDB.java

package top.imustshop;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @author dahe
 * @version 1.0
 * @ no since
 * @ 模拟DB模型,获取所有图书,根据ID获取图书信息
 */
public class ArmsDB {
    /**
     * 用来记录军火商品的编号和军火实例的对应关系
     */
    private static Map<String, Arms> Arms = new LinkedHashMap<String, Arms>();

    static {
        Arms.put("1", new Arms("1", "W8fuckcdn"));
        Arms.put("2", new Arms("2", "御剑"));
        Arms.put("3", new Arms("3", "中国蚁剑"));
        Arms.put("4", new Arms("4", "unlead gif"));
        Arms.put("5", new Arms("5", "Wireshark"));
    }

    /**
     * @return 所有图书
     */
    public static Collection<Arms> getAll() {
        return Arms.values();
    }

    /**
     * @param id 图书ID信息
     * @return param id 对应的图书信息
     */
    public static Arms getArms(String id) {
        return Arms.get(id);
    }
}


3.ListArmsServlet.java

package top.imustshop;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;

/**
 * @author dahe
 * @version 1.0
 * @ no since
 * @ 获取军火列表,以便可以将军火添加到购物车中
 */


public class ListArmsServlet extends HttpServlet {
    private static final long serialVersionUID=1L;

    /**
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     * 获取所有军火列表
     */
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out=resp.getWriter();

        /**
         * 获取所有军火列表
         */
        Collection<Arms> Arms = ArmsDB.getAll();
        out.write("军火库:<br />");
        for(Arms Arm:Arms){
            /**
             * 添加到购物车逻辑
             */
            String url ="/purchase?id="+Arm.getId();
            HttpSession s=req.getSession();
            String newUrl=resp.encodeRedirectURL(url);
            out.write(Arm.getName()+"&nbsp;&nbsp;&nbsp;&nbsp;"+"<a href='"+newUrl
                    +"'>点击购买</a><br />");
        }
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}


4.PurchaseArms.java

package top.imustshop;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * @author dahe
 * @version 1.0
 * @ no since
 * 购物车逻辑
 */
public class PurchaseArms extends HttpServlet {
    private static final long serialVersionUID=1L;

    /**
     * 获取用户购买的商品,添加到购物车
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取用户购买的商品,指定id的
        String id = req.getParameter("id");
        if (id == null) {
            // 如果id为null,重定向到listarms页面
            String url = "/listarms";
            resp.sendRedirect(url);
            return;
        }
        Arms book = ArmsDB.getArms(id);
        // 创建或者获得用户的Session对象
        HttpSession session = req.getSession();
        // 从Session对象中获得用户的购物车
        List<Arms> cart = (List) session.getAttribute("cart");
        if (cart == null) {
            // 首次购买。为用户创建一个购物车(List集合模拟购物车)
            cart = new ArrayList<Arms>();
            // 将购物车存入Session对象
            session.setAttribute("cart", cart);
        }
        // 将商品放入购物车
        cart.add(book);
        // 创建Cookie存放Session的标识号
        Cookie cookie = new Cookie("JSESSIONID", session.getId());
        cookie.setMaxAge(60 * 30);
        cookie.setPath("/");
        resp.addCookie(cookie);
        // 重定向到购物车页面
        String url = "/cart";
        String newurl = resp.encodeRedirectURL(url);
        resp.sendRedirect(newurl);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}


5.CartServlet.java

package top.imustshop;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

/**
 * @author dahe
 * @version 1.0
 * @ no since
 * 购物车展示
 */

public class CartServlet extends HttpServlet {

    /**
     * 用户购买的信息在此处进行购物车展示
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();
        List<Arms> cart = null;
        // 变量purFlag标记用户是否买过软件
        boolean purFlag = true;
        // 获得用户的session
        HttpSession session = req.getSession(false);

        // 如果session为null,purFlag置为false,表示用户没有买过软件
        if (session == null) {
            purFlag = false;
        } else {
            // 获得用户购物车
            cart =(List) session.getAttribute("cart");
            // 如果用的购物车为null,purFlag置为false
            if (cart == null) {
                purFlag = false;
            }
        }
        /**
         *如果purFlag为false,表明用户没有购买软件  重定向到ListArmsServlet页面
         */
        if (!purFlag) {
            out.write("对不起!您还没有购买任何商品! <br />");
        } else {
            // 否则显示用户购买软件列表的信息
            out.write("您购买的软件列表:<br />");
            double price = 0;
            for (Arms arm : cart) {
                out.write(arm.getName() + "<br />");
            }
        }
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}

举报

相关推荐

0 条评论