ShowServlet

package servlet;

import bean.Book;
import bean.BookDB;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;

//展示图书的界面
@WebServlet("/ShowServlet")
public class ShowServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out=response.getWriter();
        //BookDB中调用方法获取所有图书
        Collection<Book> collection=BookDB.getAll();
        //遍历集合
        for(Book book:collection){
            //当“点击购买”,将该图书传递至PurchaseServlet
            out.print(book.getName()+"<a href='/PurchaseServlet?id="+book.getId()+"'>点击购买</a></br>");
        }

    }
}

PurchaseServlet

package servlet;

import bean.Book;
import bean.BookDB;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

//将选择要购买的图书添加进购物车,并展示购物车
@WebServlet("/PurchaseServlet")
public class PurchaseServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out=response.getWriter();
        //获取图书的ID
        String id=request.getParameter("id");
        if(id==null){
            response.sendRedirect("/ShowServlet");
            return;
        }
        //如果id不为空,根据ID获取对应的图书
        Book book=BookDB.getbyId(id);
        //将图书添加进购物车
        //购物车存在session域, 因为购物车中不止一种商品,因此用集合存储点击购买的所有图书,集合代表真正的购物车
        HttpSession session=request.getSession();
        //获取购物车
        List<Book> cart=(List)session.getAttribute("bookcart");
        //如果购物车不存在
        if(cart==null){
            //创建集合对象
            cart=new ArrayList();
            session.setAttribute("bookcart",cart);//将集合对象添加进session域
        }
        //添加商品进购物车
        cart.add(book);
        out.print("您所购买的图书有:<br>");
        //遍历集合,查看购物车中的商品
        for(Book bookt:cart){
            out.print(bookt.getName()+"<br>");
        }

        //将购物车保存下来
        Cookie cookie=new Cookie("JSESSIONID",session.getId());//命名cookie的名字为"JSESSIONID",ID为获取到的sessionID
        cookie.setMaxAge(60*60);//cookie的生存周期
        cookie.setPath("/");//保存最大值根
        response.addCookie(cookie);//将"cookie"添加到请求头



    }
}

蓝奏云盘下载 | 闪电盘下载