• 基于JavaWEB+MySQL的二手闲置物品交易网站系统


    目录
    第一章  前言 3
    1.1课题的来源及意义 3
    1.2网络校园二手市场发展现状 3
    1.3 可行性研究 3
    第二章 相关技术介绍 5
    2.1 JSP技术简介 5
    2.2 JSP工作原理 5
    2.3 JSP体系结构 5
    2.4 JSP的特点 6
    2.5 MYSQL数据库 7
    2.6 系统数据库连接 8
    第三章 系统分析 13
    3.1 系统功能分析 13
    3.2 需求分析 14
    3.3 业务流分析 19
    3.4 数据流分析 20
    3.5 数据字典 21
    3.6 需求分析复审 21
    第四章 系统总体设计 22
    4.1 系统总体功能结构图 22
    4.2 系统ER图 22
    4.3 系统功能设计目标 23
    4.4 系统功能模块划分 24
    4.5 系统的体系结构 24
    第五章 数据库设计 26
    5.1 数据库系统概述 26
    5.2 数据库表设计 26
    第六章 程序设计 31
    6.1 程序说明 31
    6.2 具体模块划分 31
    第七章 软件安装与调试 39
    7.1 软件的安装与配置 39
    7.2 系统编码风格 39
    7.3 软件测试 40
    结 论 45
    参考文献 46
    第三章 系统分析

    为了最终实现目标系统,设计一个针对盐鱼的物品交易网站,用户可以在该网站浏览信息进行物品选购、查看个人信息以及历史订单。管理员账户可以对已注册用户进行查询、对订单进行查询、审核。目标是建立一个人人可自由发布商品的平台,甚至对“宿舍超市”提供良好的支持(暂不讨论是否违规)。
    注意网站的目标:仅仅是提供一个交易、信息浏览平台,因此不会提供任何对交易纠纷的处理,最大限度的问题解决方式也只是封禁、删除某些账号而已。
    这是一个典型的 浏览器(B)/服务器(S) 模式,因此客户只需要一个浏览器,我们则要实现一个服务端。
    3.1 系统功能分析
    首先对现有系统进行分析,现有系统是信息的重要来源。分析已有系统的功能和实现,从而确定新系统的设计目标和模型。由于条件有限,调研主要是在网上进行。即通过在网上已有的二手交易网站注册成会员来了解其具备的功能。
    1.从用户角度来看:
    注意:概述提到这是一个“人人可自由发布”的网站,因此不会区分买家账户和卖家账户,所有的普通用户都是一样的,下面只是把功能分开说。
    注册及登录,应当支持若干时间内的自动登录。
    买家功能:

    • 浏览商品,提供搜索功能、分类查看

    • 购物车功能,一次购买多个商品

    • 浏览个人信息页,包含订单历史、收藏的订单

    • 浏览用户信息页,可查看任一用户的公开信息

    • 对商品进行购买(创建一笔订单)

    • 购买完成后关闭订单
      关于支付的一些说明:概述提到过网站目标,因此支付由用户在线下自行完成。另外的考虑是第三方线上支付或者自己实现支付系统的复杂性、难以测试性会使整个项目的开发中心偏移。而使用站内虚拟货币又没有什么实际意义。
      卖家功能:

    • 提交一个商品,包含商品必要信息 (交给管理员审核,通过即可被浏览)

    • 查看我发布的商品,应标记出审核状态

    • 提醒:我的某商品被购买

    • 取消订单
      2.从网站的角度看:
      对于后台数据处理,有 真-服务器管理员可以直接操作数据库,所以并没有什么必要对管理员账户作过多的功能开发,但为了方便管理,管理员应该在浏览器上可以:

    • 普通用户的所有功能,管理员首先是一个用户。

    • 审核商品,为了防止出现恶意破坏网站和不合规定的商品,每个商品都必须通过审核。

    • 人工添加用户、删除用户、查询用户和任何商品、订单信息
      3.2 需求分析
      需求分析的任务是通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确用户的各种需求,本文转载自http://www.biyezuopin.vip/onews.asp?id=15092然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变。
      括号内为说明
      首页(不同分类的商品展示)
      登录页
      注册页
      个人页
      个人资料
      收藏页
      正在进行的订单页
      历史订单页(购买、售出)
      站内消息页(系统、用户)
      购物车(支持移除个别商品)
      我的商品
      正在审核的商品
      用户资料页(所有公开信息)
      商品详情页(发布日期、作者、作者信息)
      购买结果页
      订单详情页(订单号、发布信息)
      搜索结果页(不同排序方式)
      后台管理页
      商品审核
      订单查找
      用户管理
      对数据的安全性、完整性要求:用户信息保密,只有管理员可见(可查),但不能任意修改。确保网上支付安全。商品信息、用户信息必须保证其完整性。防止恶意删改。以下是系统性能需求:
      (1)准确性和可靠性高
      (2)页面友好,功能齐全,且可以使用
      (3)系统便于维护和升级。
      (4)数据库访问效率高
      数据流图:是一种描述软件系统逻辑模型的图形符号。这种图形表示即可以从本质上描述计算机软件系统的工作情况,又适合非计算机专业人员学习和掌握,在需求分析中是一种很好的交流和表达工具。

    <%@page import="com.luna.saltfish.tools.*" %>
    <%@page import="com.luna.saltfish.dao.UserHandle,com.luna.saltfish.constant.*" %>
    <%@page import="org.w3c.dom.UserDataHandler" %>
    <%@page import="com.luna.saltfish.dao.GoodsHandle" %>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
             pageEncoding="UTF-8" %>
    <%@ page language="java" %>
    <%@ page
            import="java.text.SimpleDateFormat,java.sql.*,java.lang.Math,com.luna.saltfish.tools.*,javax.servlet.http.HttpSession,java.util.*,com.luna.saltfish.entity.*" %>
    <%@ page import="com.luna.saltfish.entity.Goods" %>
    <%@ page import="com.luna.saltfish.entity.User" %>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
                + path + "/";
        // http://127.0.0.1:8080/salt-fish/
    %>
    <%
        //显示第几页
        int pn = 1;
        //每页显示几条?
        int perPage = StaticVar.PERPAGE_GOODS;
        int ceta = 0;
        String tmpString = request.getParameter("pn");
        //获取pn参数
        if (tmpString != null && tmpString.length() != 0) {
            if (Integer.parseInt(tmpString) > 0) {
                pn = Integer.parseInt(tmpString);
            }
        }
        //获取类别参数
        tmpString = request.getParameter("ceta");
        if (tmpString != null && tmpString.length() != 0) {
            if (Integer.parseInt(tmpString) > 0) {
                ceta = Integer.parseInt(tmpString);
            }
        }
        int limitMin = (pn - 1) * perPage;
        GoodsHandle goodHandle = new GoodsHandle();
        UserHandle userHandle = new UserHandle();
        List list = null;
        IntHolder num = new IntHolder(0);
    %>
    
    
    
        
        
        物品交易-盐鱼-首页
    
    
        
        
    <% switch (ceta) { case 0: out.println("分类-全部"); list = goodHandle.findAll(num, limitMin, perPage); break; case 1: out.println("分类-书籍"); list = goodHandle.findByCeta(1, num, limitMin, perPage); break; case 2: out.println("分类-生活出行"); list = goodHandle.findByCeta(2, num, limitMin, perPage); break; case 3: out.println("分类-衣物鞋包"); list = goodHandle.findByCeta(3, num, limitMin, perPage); break; case 4: out.println("分类-电子产品"); list = goodHandle.findByCeta(4, num, limitMin, perPage); break; case 5: out.println("分类-体育运动"); list = goodHandle.findByCeta(5, num, limitMin, perPage); break; case 6: out.println("分类-其他"); list = goodHandle.findByCeta(6, num, limitMin, perPage); break; default: out.println("分类-全部"); list = goodHandle.findAll(num, limitMin, perPage); break; } if (list.size() != 0) { for (Goods good : list) { if (good.getProducterId() == null) { continue; } User user = userHandle.findById(good.getProducterId()); %>
    <%=Math.round(good.getPrice())%> 发布者:<% if (user.getName() != null) { %> <%=user.getName()%> <% } else { %><%=user.getEmail()%> <% } %> 时间: <% java.util.Date date = good.getCreateDate(); SimpleDateFormat myFmt = new SimpleDateFormat("yyyy年MM月dd日 HH:mm"); String dateStr = myFmt.format(date); out.print(dateStr); %>
    <% } } else { %>
    此分类下暂无物品或页数已经到达最大!
    <% } %>
    <% int maxPage = num.value % perPage == 0 ? num.value / perPage : num.value / perPage + 1; %>
    <% %>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    职场「OKR」,魔幻又内卷
    一、何为算法,什么是伪代码
    Unity地面交互效果目录
    【Paper Reading】VAFL: a Method of Vertical Asynchronous Federated Learning
    传递事件流
    springcloudalibaba架构(27):将微服务的配置内容转移到nacos
    【檀越剑指大厂--redis】redis高阶篇
    DES|3DES|AES|RSA|DH | CA | SSL(HTTPS)
    全套完整版实战型Java云HIS系统源码
    C#语言入门详解 第十七讲 (字段、属性、索引器、常量)
  • 原文地址:https://blog.csdn.net/sheziqiong/article/details/126867075