模拟亚马逊、淘宝等浏览记录(历史记录)功能(访问集合存储的数据)

本文介绍如何模拟类似淘宝、亚马逊的浏览记录功能。通过使用LinkedList和Cookie存储最近浏览的三个商品,确保最新浏览的商品始终在最前面。在Java中,详细实现了书店首页展示所有书籍及最近浏览记录的Servlet逻辑,以及书籍详情页面的处理。同时讨论了如果将数据存储改为MySQL数据库时的历史记录实现方法。
摘要由CSDN通过智能技术生成

我们经常在淘宝,京东,亚马逊等电商平台浏览商品是,经常会看到最近浏览记录这一栏,如下图:

这里写图片描述


Q题目

现在要求,模拟一个类似的功能,实体为一个网上书店,要求显示最近的三条浏览记录。如下图

这里写图片描述

例如:
1)现有如下网上书店:

本站书籍目录:
    JAVA
    C++
    C语言
    Linux
    Android
最近三次浏览记录:

2)第一次注册进去时,是没有浏览记录的
3)浏览第一个商品后,若为Java,显示界面

本站书籍目录:
    JAVA
    C++
    C语言
    Linux
    Android
最近三次浏览记录:
    JAVA

4)浏览第二个商品,若为C++

这里写图片描述

5)浏览第三个商品,若为Java,此时涉及一个排序问题了,最前的必须是最近浏览的。

这里写图片描述

6)浏览第四个商品,为C语言,

这里写图片描述


逻辑分析:

因为浏览记录设计到排序问题,为了避免排序,我们使用LinkedList集合来实现此处功能。

因为Linkedlist特点是:增删速断快,而且有addFirst(),remove()等方法。

此处,我使用Cookie来存储最近的浏览记录(当然,电商平台一般都是使用session实现)。Cookie中的key和value分别为ids,“1-2-3”等形式。

Cookie的value值说明:1-2-3

数字代表的是书籍的唯一编号id,这样我们可以将Cookie值按“-”拆分,取出id,再根据id,取出对应书籍。

实现代码

目录

这里写图片描述

book类

package com.tcb.domain;

public class Book {
   
    private int id;
    private String name;
    private int price;
    private String author;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getPrice() {
        return price;
    }
    public void setPrice(int price) {
        this.price = price;
    }
    public String getAuthor() {
        return author;
    }
    public void set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值