Java Web——Session实现购物车

这篇具有很好参考价值的文章主要介绍了Java Web——Session实现购物车。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验名称:

Session实现购物车

实验目的:

(1)掌握什么是Cookie对象,掌握Cookie对象的使用

(2)掌握什么是Session对象,掌握Session对象的使用

(3)掌握使用Session对象实现购物车功能

实验内容及原理:

使用Session对象实现购物车功能

购物车的实现流程如下:

session购物车,Java Web,java,前端,servlet

要求在Java web项目里,创建Book.java类封装图书信息;模拟数据库BookDB 类,保存图书信息;购买页面类ListBookServlet,用于显示所有可购买图书的列表;添加购物车类PurchaseServlet;回显购物车图书信息类CartServlet使用Session对象实现购物车功能

实验设备及实验步骤:

Win10操作系统+JDK软件+Eclipse软件+Apache-tomcat软件

1、创建封装图书信息类Book.java。

package com.example.BookSession;

public class Book {
    public String id;
    public String name;
    public Book(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、创建模拟数据库BookDB 类,保存图书信息。

package com.example.BookSession;

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

public class BookDB {
    //模拟数据库
    private static Map<String,Book> map =new LinkedHashMap<String,Book>();
    static {
        map.put("1", new Book("1","活着"));
        map.put("2", new Book("2","瓦尔登湖"));
        map.put("3", new Book("3","人性的弱点"));
        map.put("4", new Book("4","麦田里的守望者"));
        map.put("5", new Book("5","月亮与六便士"));
        map.put("6", new Book("6","围城"));
    }

    //1.提供一个得到图书的方法
    public static Collection<Book> getAll(){
        return map.values();
    }
    //2.根据map的key,也就是图书id,得到图书
    public static Book getBook(String id) {
        return map.get(id);
    }

}

3、提供图书的购买页面类ListBookServlet,用于显示所有可购买图书的列表。(15分)

package com.example.BookSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 提供一个图书的界面
 */

public class ListBookServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        // 处理中文乱码
        response.setContentType("text/html;charset=utf-8");
        //1.得到所有图书
        Collection<Book> books = BookDB.getAll();
        //2.图书回显到页面
        PrintWriter out = response.getWriter();
        out.print("以下是本网站所售卖的所有图书:"+"<br/><br/>");
        //3.遍历集合,图书显示
        for(Book b :books) {
            //4.得到图书的名称
            String url = "PurchaseServlet?id="+b.getId();
            out.print("图书名称 : 《"+b.getName()+"》           "+"<a href ='"+url+"'>点击购买</a><br>");
        }
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

4、创建添加购物车类PurchaseServlet。(15分)

package com.example.BookSession;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * 添加购物车
 */

public class PurchaseServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        // 处理中文乱码
        response.setContentType("text/html;charset=utf-8");
        //1.获取图书信息
        String id = request.getParameter("id");
        //判断id是否存在
        if(id==null) {
            //没有 购买图书
            response.sendRedirect("ListBookServlet");
            return;
        }
        System.out.println();
        //2.图书已经购买
        Book book = BookDB.getBook(id);
        //3.把图书添加至购物车
        HttpSession session = request.getSession();
        List<Book> list = (List<Book>) session.getAttribute("cart");
        //4.判断购物车是否存在:是不是首次购买图书
        if(list==null) {//首次购买
            //创建购物车
            list = new ArrayList<Book>();
            //把购物车放进session
            session.setAttribute("cart", list);

        }
        //5.把图书添加到购物车
        list.add(book);
        //6.把请求跳转到CartServlet
        //session基于自己创建的cookie完成效果:在浏览器关闭后,cookie对象还存在目的
        Cookie cookie = new Cookie("JESSIONID", session.getId());
        cookie.setMaxAge(60*30);//1h
        cookie.setPath("/chapter05.session");
        response.addCookie(cookie);

        //跳转到cartServlet里面    
        response.sendRedirect("CartServlet");
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

5、创建回显购物车图书信息类CartServlet。(20分)

package com.example.BookSession;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;



public class CartServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // TODO Auto-generated method stub
        // 处理中文乱码
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        //1.得到购物车
        List<Book> cart = null;
        //2.得到用户自己的session
        HttpSession session = request.getSession(false);
        //3.自己定义一个标识,判断购物车里面是否有图书
        boolean cartFlag = true;
        if(session==null) {//购物车没有图书
            cartFlag = false;
        }
        else {
            cart = (List<Book>) session.getAttribute("cart");
            if(cart==null) {
                cartFlag=false;
            }
        }
        //4.判断购物车有商品
        if(!cartFlag) {//没有书
            out.print("对不起,您的购物车没有图书,请去购买。");
        }
        else {
            //有图书,遍历图书
            out.print("购买图书如下: "+"<br/>");
            for(Book b:cart) {
                out.print("购买的图书:"+b.getName()+"<br/>");
            }

        }
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

    }
}

6、运行结果图截图:(10分)

session购物车,Java Web,java,前端,servlet

问题及思考:(10分)

掌握了什么是Cookie、Session对象和其使用并运用Session对象实现购物车功能。在完成该项目时遇到了如何模拟数据库的问题,通过建立map,成功模拟出。在开发过程中,使用ServletContext对象保存商品信息是可以的,但是不合理,所以保存会话过程中产生的数据,采用会话管理技术,也就是使用cookie和session技术来保存会话过程产生的数据。文章来源地址https://www.toymoban.com/news/detail-716576.html

到了这里,关于Java Web——Session实现购物车的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaWeb购物系统(五)购物车模块的实现

    未添加商品效果图 添加商品之后的效果图 添加商品 购物车中商品的数量增加、减少、通过键盘输入改变数量 清空购物车 计算购物车商品的总价格 我们的购物车采用的是在服务端,即:使用session来存储。这样做的 缺点 :无法永久存储,当服务端关闭的时候,会销毁。 优点

    2024年02月07日
    浏览(33)
  • js实现购物车

    ### 嘎嘎原生,看就完了 ### # # html部分 ### css部分 ### js部分

    2024年01月21日
    浏览(44)
  • 购物车程序实现教程

    在本教程中,我们将实现一个购物车程序,实现在界面中以列表的形式显示购物车的商品信息。商品信息包含商品名称,价格和数量,并能实现对应的增删改查操作。我们将使用 Android Studio 和 SQLite 数据库来完成这个任务。 我们的购物车程序由以下四个主要类组成: MainAct

    2024年02月04日
    浏览(36)
  • JavaWeb购物系统(六)购物车订单模块的实现

    有订单时的效果图 无订单时的效果图 订单详情页 生成订单 订单页的展示 查看订单详情 和购物车同样的,首先得知道我们的订单对应的哪个实体对象。一个用户可能有多条订单记录,一个订单里边可以包含多个 商品(也可以理解为多个购物项) 。理清这个逻辑之后,我们

    2024年02月05日
    浏览(42)
  • 【JavaScript】实现简易购物车

    💻【JavaScript】实现简易购物车 🏠专栏:有趣实用案例 👀个人主页:繁星学编程🍁 🧑个人简介:一个不断提高自我的平凡人🚀 🔊分享方向:目前主攻前端,其他知识也会阶段性分享🍀 👊格言:☀️没有走不通的路,只有不敢走的人!☀️ 👉让我们一起进步,一起成

    2024年02月04日
    浏览(45)
  • javaweb实现购物车功能

    使用到的相关知识(部分知识点在文章中简单涉及到):        html  cs  javascript  jsp  servlet   ajax  jQuery  Mysql  MyBatis(持久层框架,用来连接数据库,这里可以使用jdbc进行数据库的连接)  功能使用MVC设计模式,以及三层架构思想 注: 本篇使用 Session 对购物车进行存储,具体参

    2023年04月21日
    浏览(30)
  • 【微信小程序】 实现购物车

    原生实现,不使用任何框架,网上没有啥好看的购物车,而且都是抄来抄去的,我来写一个好点的作为参考吧,拿来就能用。 接口自行添加 。 链接:购物车代码片段。图片太大了没办法上传到代码片段,自己找几张图片就行。 购物车功能包括: 显示默认地址,或选择地址

    2024年02月03日
    浏览(35)
  • HTML淘宝购物车页面的实现

    一、实验目的和要求 本实验任务用HTML基本标签制作一个简单的淘宝购物车页面,具体要求如下: 以纯文本格式保存为*.html文件 使用表格标签、div标签、span标签、图像标签等实现效果设计 启用浏览器,打开该文件或在地址栏中直接输入存放该文件的地址 二、 实验原理 首先

    2024年02月11日
    浏览(36)
  • 微信小程序购物车页面实现

    目录 32.商品加入购物车逻辑实现(前端) 33.购物车页面收货地址实现 34.购物车商品列表显示实现 37.购物车商品复选框选中业务处理 38.购物车全选复选框选中业务处理 39.购物车商品数量编辑实现 40.购物车商品数量为0判定是否删除 42.商品详情立即购买逻辑实现 1.先在produc

    2024年02月11日
    浏览(32)
  • 实现蛋糕商城购物车功能代码实现实验报告

    一、实验目的 1、熟悉HttpSession接口中常用方法 2、熟悉Session 对象的生命周期 3、熟悉两种方法返回与当前请求相关的HttpSession对象。 4、学会如何使用Session 技术模拟用户登录的功能 二、实验内容 实现购物车 1、在chapler05 项目下新建一个名称为 cn.itcast.session.entity 的包,在该

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包