目 录
摘 要 1
Abstract 2
第1章 前 言 3
1.1 项目的背景和意义 3
1.2 研究现状 3
1.3 研究内容及预期目标 3
第2章 技术与原理 7
第3章 系统需求分析 8
3.1 可行性分析 8
3.2 业务需求分析 8
3.3 功能需求分析 9
3.4 对象模型分析 11
3.5 非功能需求分析 11
第4章 系统总体设计 13
4.1 系统架构设计 13
4.2 功能模块设计 13
4.3 数据库设计 15
4. 4 类设计 . . . . . . . . . . . . . . . . . … . .15
第5章 系统详细设计与实现 17
5.1 实现系统功能所采用技术 17
第6章 系统测试与部署 21
第7章 结论 22
参考文献 23
1.2 国内外研究现状分析
1.2.1 国外电子商务发展与现状
从全球的角度来看,电子商务主要历经了三个阶段:萌芽时期,形成时期,发展时期。
1、萌芽时期可以追溯到19世纪前叶,电报的出现当即就引发了人们对于其在商务领域应用的讨论,这个时期莫尔斯密码可算是主要承载形式。
2、形成时期则开始于电子计算机的出现,时间自20世纪中叶起始,EDI(电子数据交换)被公认为是形成时期的主要承载形式。
3、发展时期则伴随着计算机网络技术尤其是网联网的出现,20世纪90年代后期,计算机、互联网技术迅速发展,信用卡的广泛使用,及电子安全交易协议的制定与推广,电子商务的规模真正意义上达到了一个新台阶。
从1994年亚马逊成立,到1995年美国宣布成立电子商务工作组,B2C这个概念也在次年被提出。美国从一开始在电子商务的发展上就居于领跑地位。无论是全球电子商务市场份额还是技术发展水平,美国都是执牛耳者,后来西欧等发达国家和地区也迎头赶上,引领新型商业模式并作为规模担当。
然而,近年来电子商务市场开始呈现新的特点:以中国为代表的新兴市场逐渐成为全球电子商务重心,美国和欧洲无论是规模还是从发展速度来看将逐渐处于劣势。亚太、拉美、中东等新兴市场的规模日益攀升,发展速度和规模也颇令人瞩目。新兴市场不断缩小与发达国家的发展差距,尤其是创新能力和基础设施差距,新兴市场国家在未来将领跑整个电子商务领域。
1.2.2 国内电子商务发展与现状
纵观世界其他国家电子商务的发展,我国开始发展的时间稍晚,然而发展的规模和速度仍然不容小觑,主要可以分为以下几个阶段:
1、1999-2002年是萌芽阶段,电子商务的发展开始正式起步。
2、2003-2006年是快速发展期,国外电子商务企业如亚马逊等开始进驻,带来许多先进的理念、技术和方法,与此同时国内阿里巴巴、当当等电商平台开始涌现。
电子商务依旧十分热门,网上商城的市场依旧很大。好的商城系统是保证消费者愉快购物的关键。
3、2007年开始,中国的电子商务进入高速上升时期,越来越多的企业带来更多的资金和更先进的技术投入,天猫、京东等电商平台开始引爆中国,几乎绝大部分的国人也都或多或少参与到电子商务中来,为电商平台的更新升级与发展进步提供了推动力,人们的生产生活方式也出现翻天覆地的变化。
以淘宝为例,据中国电子商务研究中心监测数据,2016年5月,淘宝手机客户端月活跃用户达到3.7亿,其中深度活跃用户平均每天登陆手机淘宝达7.2次,浏览商品约18 件商品,淘宝手机客户端平均产生2000万关于商品的评论和分享。大量用户在浏览商品、阅读及社区评论互动上花费的时间每天要超过1个小时。本文转载自http://www.biyezuopin.vip/onews.asp?id=15150这庞大的用户数量和用户使用时间决定了在新兴国家中,中国电子商务市场的发展速度是最快的,规模也是最大的。可以想见到,未来相当长的一段时间内中国将在世界电商领域上领跑。
1.3 研究内容及预期目标
在线电子商城是基于javaweb技术实现的,包含前后端.预期目标是实现基础的业务流程,后期再拓展创新功能,能让使用者有很好的用户体验。
第2章 技术与原理
Javaweb相关知识点
springboot框架实现后台系统
前台通过Thymeleaf模板代替Jsp进行渲染,极大地降低了耦合性,使项目前后端分离更加友好。
分布式多线程爬虫的使用
前端框架还有后台框架layui使用
Bootstrap4前端框架的使用
Ajax异步交互
Js,h5,css前端知识等等
文件选择器选择文件
模拟支付相关知识
协同过滤算法相关知识点简单实现推荐功能
搜索功能优化
代码优化复用相关知识点
数据库一系列操作,比如触发器,视图,存储过程等等。
package priv.jesse.mall.web.user;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import priv.jesse.mall.entity.User;
import priv.jesse.mall.entity.pojo.ResultBean;
import priv.jesse.mall.service.UserService;
import priv.jesse.mall.service.exception.LoginException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 打开注册页面
*
* @return
*/
@RequestMapping("/toRegister.html")
public String toRegister() {
return "mall/user/register";
}
/**
* 打开登录页面
*
* @return
*/
@RequestMapping("/toLogin.html")
public String toLogin() {
return "mall/user/login";
}
/**
* 登录
*
* @param username
* @param password
*/
@RequestMapping("/login.do")
public void login(String username,
String password,
HttpServletRequest request,
HttpServletResponse response) throws IOException {
User user = userService.checkLogin(username, password);
if (user != null) {
//登录成功 重定向到首页
request.getSession().setAttribute("user", user);
response.sendRedirect("/mall/index.html");
} else {
throw new LoginException("登录失败! 用户名或者密码错误");
}
}
/**
* 注册
*/
@RequestMapping("/register.do")
public void register(String username,
String password,
String name,
String phone,
String email,
String addr,
HttpServletResponse response) throws IOException {
User user = new User();
user.setUsername(username);
user.setPhone(phone);
user.setPassword(password);
user.setName(name);
user.setEmail(email);
user.setAddr(addr);
userService.create(user);
// 注册完成后重定向到登录页面
response.sendRedirect("/mall/user/toLogin.html");
}
/**
* 登出
*/
@RequestMapping("/logout.do")
public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {
request.getSession().removeAttribute("user");
response.sendRedirect("/mall/index.html");
}
/**
* 验证用户名是否唯一
* @param username
* @return
*/
@ResponseBody
@RequestMapping("/checkUsername.do")
public ResultBean<Boolean> checkUsername(String username){
List<User> users = userService.findByUsername(username);
if (users==null||users.isEmpty()){
return new ResultBean<>(true);
}
return new ResultBean<>(false);
}
/**
* 如发生错误 转到这页面
*
* @param response
* @param request
* @return
*/
@RequestMapping("/error.html")
public String error(HttpServletResponse response, HttpServletRequest request) {
return "error";
}
}