大家好,又见面了,我是你们的朋友全栈君。
本文章是JavaWeb课程的课程设计
1.项目概况
1.1 课题背景、目的及意义
1.1.1 课题背景
随着互联网的普及和电子商务的兴起,网上图书销售是互联网电子商务在图书销售行业中的必然结果,这种新型的图书销售形式越来越受人们的欢迎,正在以不可阻挡的 气势替代着传统的图书销售模式。与其传统销售模式相比拥有许多优势,一是降低了销售成本,二是利用互联网作为交易平台,是的交易活动不受时间和空间的限制,大大提高了交易的效率,三是互联网更加的灵活方便,足不出户就能知道最新的图书信息。正是由于这些优势网上图书销售才得以飞速发展,客户通过网上图书交易系统可以查看图书并实现在线购买。
1.1.2 目的和意义
工作效率一直是人们追求的,特别是在竞争日益激烈的今天,因而提高工作效率是每个企业面临的重大问题。叮叮网上书城系统就是为了解决这个重大问题而开发的一套完整在线交易图书的系统。 叮叮网上书城系统大大降低了人力、物力,并实现 24 小时营业。 网上书城系统更加有利于让图书的交易趋向全球化,为人们提供更加便捷的服务。
1.2 国内外研究现状
1.2.1 国外的研究现状
网上图书销售是全球经济飞速发展的必然结果,国与国之间互联网的开通更是促进了交易全球化的发展。特别是在美国、德国、日本经济发达的国家,网上图书销售发展迅速,几乎取缔了传统的图书销售模式。据InternetWorldStatS 的统计,截止目前全球互联网用户已经达到40亿,网民的迅速增长为网上图书销售开辟了空间和市场,目前国外的网上图书销售也正处于水深火热之中,正在不断开发与完善。
1.2.2 国内的研究现状
中国的互联网相对于国外来说虽然起步较晚,但是近几年来发展的非常迅速,在全球40亿网民中仅中国网民就占据7.7 亿,这位电子商务在中国的发展开辟了道路,使得网上图书销售变得越来越流行。淘宝就是一个非常有说服力的电子商务成功案例,还有京东、亚马逊等这样的电商的成功创办,都足以说明我国近几年互联网的飞速发展。预计2020 年网上图书销售已经普通百姓的消费手段。
1.3可行性分析
1.3.1 社会可行性
随着计算机的普及和网络的发展,网络已经渗透到各家各户,现在的网民可以在网上购买到任何图书,叮叮网上书城系统主要目的是进行网上售书,严格按照法律法规进行研发,并无法律和政策方面的限制。
1.3.2 技术可行性
本系统采用 jsp、Servlet、 Mysql 开发, HTML5+CSS3进行前台页面设计,采用原生JDBC方式与后台数据库进行连接。在项目搭建方面采用三层架构,此架构技术目前已经相当成熟,在技术方面不存在问题。
1.3.4 操作可行性
本系统对计算机硬件要求很低, 目前绝大多数计算机都可以对本系统进行安装,而且安装本系统不会对原来计算机设置等进行改变,相关人员能熟练方便的安装本系统。
2.技术分析
2.1 系统的技术介绍
2.1.1 JavaScript
JavaScript 是一种基于对象动态类型的脚本语言,器功能非常强大,目前被广泛应用于web 项目的开发,它的跨平台性非常强,绝大多数浏览器都支持。用于为前端页面事件触发效果。
2.1.2 JQuery
JQuery是一个由JavaScript 封装的框架,更确切的说是一个库,它包含了很多由原生JavaScript写的函数,可以直接调用,开发效率很高,例如直接对 DOM 对象的操作,制作动画效果还更加便捷使用 Ajax 进行异步访问,而且JQuery 是开源免费的。
2.1.3 JSP
Jsp的中文名称是java服务器页面它实现了HTML语法中对 Java 的扩展,可以直接在页面通过 ”<% %> ”的形式进行利用Java代码控制特效和数据的传输,jsp技术更容易使页面逻辑与功能逻辑相分离,从而降低系统耦合性,使开发和维护工作更加方便。目前绝大多数项目使用 Jsp 技术。
2.1.4 Mysql
Mysql是一个开源的小型数据库管理系统,其体积小、速度快、拥有成本低,是中小型企业开发的优先选择。而且其在性能方面也是十分好的。
2.1.5bootstrap
Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。
2.1.6jQuery
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
2.1.7Spring框架
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
2.1.8MyBatis
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
2.2 系统开发平台
2.2.1 系统的开发平台
系统开发采用 eclipse+tomcat 。Eclipse 最初是由 IBM 公司开发的替代Visual Age for Java的下一代 IDE 开发环境。其发展经历了很多版本的更新,其中 Mars 版本是目前最新版本,可以胜任 JavaEE 大型项目,而且 eclipse 没有集成太多插件, 在性能方面有优于myeclipse 。Tomcat 是一个开源的免费的Servet 容器,相当于一个服务器。只需要把项目打成WAR包上传到 webapp 目录,启动就能正常访问。
3.系统总体设计
3.1主要功能:
购买:购物车 下单 支付 订单中心 展示
用户:账号 用户信息 地址 购物车
系统运营:秒杀系统 推荐系统 广告系统
管理员:用户管理 商家管理 订单管理 商品管理
3.1.1前台用户功能可以概括为以下几点:
1.用户信息管理模块:处理用户注册、登陆验证;
2.商品信息模块:包括商品浏览、商品查询;
3.购物车模块:购买商品,修改商品数量,最后结账;
4.订单模块:此模块中信息由购物车结账产生,可以供用户查询订单。
3.1.2商家功能可以概括为以下几点:
1.店铺管理模块:店铺信息修改、店铺注销;
2. 商品管理模块:可以添加、修改、下架商品分类信息,添加、修改、删除商品信息;
3.1.3后台管理员功能可以概括为以下几点:
1.管理员登陆:管理员登陆,成功登陆后可访问其他页,对后台进行管理;
2.客户管理模块:包括查询和修改客户信息;
3.商品管理模块:可以添加、修改、删除商品分类信息,添加、修改、删除商品信息;
4.订单管理模块:处理客户的订单,查询订单以及销售的情况;
3.2根据系统总体功能,详细的功能逻辑实现如下图:
注:商家的注册店铺重复,有一个是登录店铺
3.2.1系统功能结构图
3.2.2管理员用例图
3.2.3商家用例图
3.2.4用户用例图
3.3系统流程分析
客户购物的流程是整个系统流程最重要的部分,不管客户是否登录都应该进行商品浏览,未登录的客户可以在将商品放入购物车时进行验证。
(1)客户购物流程图:
(2)管理员流程图:
(3)商家流程图:
4.数据库设计
数据库设计是整个项目开发的关键,一个好的数据库设计可以大大减少开发中不必要的修改于调整,保证开发效率。数据库中包含以下几个表:管理员表、用户表、商品表、购物车表、订单表、广告表,各表结构如下
4.1逻辑结构详细设计
4.1.1管理员表 (manager)
管理员id (id)、账号(account) 、密码(mpwd)、姓名(name)、性别(sex);
表4.1.1管理员表
4.1.2用户表 (user) (购物车表、订单表的父表)
用户id (id)(int );账号(account)(int);密码(pwd)(varchar);姓名(name)(varchar);邮箱(email)(varchar);性别(sex)(varchar);电话(phone)(varchar);注册时间(rgtime)(datetime);收货地址(shopaddress)(varchar);用户类型(usertype)(varchar);
表4.1.2用户表
4.1.3商家表(busiman)(商品表的父表)
商家id(busimanid)(int) ;账户(account)(int);密码(pwd)(varchar) ;姓名(name)(varchar) ;电话(phone)(varchar) ;店铺名称(shopname)(varchar);
4.1.4商品表 (goods) (购物车表的父表)
商品id (goodsid) (int);商家账户(商家表的外键);商品名称(goodsname)(varchar);商品价格(goodsprice)(int);商品类型(goodstype)(varchar);销量(volume ) (int);库存数 (repertory)(int);品牌(brand) (varchar);
表4.1.3商品表
4.1.5购物车表 ( shopcar)
购物车id(shopcarid) ;用户id(id)(用户表的外键);商品id (goodsid)(商品表的外键);商品数量(cargoods);加入时间(jointime);
表4.1.5购物车表
4.1.6订单表 (order)
订单id (orderid) ;用户id(id)(用户表的外键);商品id (goodsid)(int)(商品表的外键);交易时间(ordertime);订单数量(ordercount);订单交易状态(orderstate);
表4.1.6订单表
订单表中的外键
4.1.7 广告表(adver)
广告id adverid (int);类型( advertype)(varchar) ;内容(content)(varchar);
表4.1.7广告表
4.2数据库ER图
4.2.1购物车ER图
4.2.2广告ER图
4.2.3管理员ER图
4.2.4订单ER图
4.2.5商品ER图
4.2.6用户ER图
4.2.7商家ER图
5.系统详细设计
叮叮网上购书系统经过前期的市场调查,需求分析以及详细设计,整个系统功能架构已经,逐渐清晰,为系统的开发奠定了基础。 叮叮网上购书系统系统从前台和后台两大部分进行设计。
5.1前台功能设计
首页分为三个模块,登录、注册、云书房、我的叮叮、购物车、菜单、分类,图书详情页、食品、客户服务等模块为用户提供更加直观的界面。
5.1.1注册表单
5.1.2登录表单
5.1.3云书房
5.1.4购物车
5.1.5图书详情页(只附一张图)
5.1.6食品商场
5.1.7筛选、搜索(图书种类筛选、价格筛选)
5.2后台设计
5.2.1后台首页
5.2.1用户管理
5.2.2购物车
5.2.3订单管理
5.2.4商品管理
5.2.5管理员
5.2.6管理员
6.系统测试
6.1 系统测试概述
6.1.1 系统测试的目的和意义
随着科技的飞速发展,互联网已经涉及各行各业,人们的办公与生活也离不开了各种互联网系统,特别是一些涉及到金融方面的,因此系统的安全性是非常重要的。软件测试的目的是找出潜在的漏洞,排除安全隐患,避免有心之人利用系统漏洞损害他人利益,对互联网造成恶劣影响。系统测试在整个软件开发中占 40%-50%的工作量,它不仅是测试源程序,而是对整个软件系统,包括需求分析,概要设计等。最终要保障软件的质量,尽可能的找出系统中存在的错误,把损失降到最低。
6.1.2 系统测试的方法
系统测试的方法有很多,比如从是否执行程序的角度考虑可分为静态测试和动态测试。从是否关心系统内部执行情况可分为黑盒测试和白盒测试。 从软件开发过程按阶段划分有单元测试、集成测试、系统测试、确认测试和回归测试。
目前在软件开发行业中,系统的测试方法主要包括双盒测试,即黑盒和白盒测试。顾名思义,黑盒测试就是把程序看做一个不可分割的整体,在知道其各个功能的前提下通过直接操作系统把得出的结果和预期结果进行比对。黑盒测试不需要知道程序内部的逻辑结构和程序的执行顺序,只看其是否是否实现前期设计的功能。“白盒”测试也成为逻辑结构测试,即需要知道程序的设计流程和执行流程,检查每一个步骤是否按正确的调用顺序进行执行。
因此我们在用黑盒测试的时候需要更多的对测试的范围进行考虑,需要考虑到用户所有输入的可能性,包括恶意的随意的输入。但是白盒测试的局限性也比较强,即不能确认已有程序是否违背现有设计规范。一般在测试中需要白盒测试与黑盒测试配合完成。
6.2 测试结论
系统性的测试是一种有序方式设法探测存在问题的程序的位置,通过对系统的功能性测试,与预期结果符合,可以满足用户对购买书籍的整体需求。系统测试是非常有必要性的,通过一些特殊的数据用例有时会得到预料之外的结果,通过对结果的分析从而找出潜在的bug修复存在的安全隐患。虽然系统测试可以找出系统的漏洞,但是更重要的还是在代码编写时加强逻辑性分析和设计,对关键代码的处理上要分析出所有可能出现的分支, 并保持一个良好的代码编写习惯,这样对后期的测试以及系统的维护会带来很大的帮助。
7.课程设计总结
7.1系统开发总结
网上交易模式在现在越来越重要,电子购物将代替传统的购物模式,逐渐成为社会的消费主流。叮叮网上书城系统就是为了满足大众的网上购书需求而设计的。通过对叮叮网上书城的设计与开发,我较全面的掌握了java的基础知识和编程技巧,了解了项目开发的三层架构体系,Spring、Mybatis、Servlet、Jsp、jQuery、js、bootstrap、css、html的知识并且懂得了在电子商务界的整体业务逻辑。在开发过程中遇到了很多困难,除了技术上的困难外还有逻辑上的,比如由于前期需求分析做的不具体在后面进行代码具体实现功能的时候会让程序产生不确定的结果,这都是程序开发中的禁忌。也正是因为经历了这些困难, 让我学到了更多的经验,需求分析这步工作直接决定这项目是否能顺利完成。 在一个项目的开发周期中,需求分析要占整个周期的一半以上。在开发一个完整项目时,不能盲目的直接就开始编写代码, 要首先做好需求分析和数据库设计工作,要先写好开发文档并严格检查其可行性,只有这些工作做好之后,在代码编
写的时候才能做到胸有成竹,在开发中不至于遇到逻辑上不通的问题,避免由于需要从新设计而带来的时间和经济上的损失。于我而言这次项目的开发让我学习了很多知识,但是这还远远不够,我会继续努力,利用现有知识去开阔自己的眼界。遇到困难保持冷静,寻找一条最优的解决方案。此次系统的开发为我以后走向工作岗位打下了坚实的基础。
7.2成员分工
***(组长):网站后台逻辑设计、代码实现、数据处理、数据库设计构建。
***(组员):网站前端页面设计、前端用户交互设计、代码实现、数据库设计构建。
7.3问题
叮叮网上书城系统从需求分析到具体功能的实现符合电子商务的各项特征,但是由于个人技术方面原因,本系统只是实现了售书的常规功能,还有一些其他功能例如物流跟踪等会在今后继续扩充。
以下是完整项目的链接:
链接:https://pan.baidu.com/s/133iSj-pThM0w3pbWX9G7Kw
提取码:c049
复制这段内容后打开百度网盘手机App,操作更方便哦
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156725.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...