目 录
1 绪论 1
1.1 研究背景 1
1.2 目的和意义 1
1.3 开发工具及技术 1
2 需求分析 3
2.1 功能需求分析 3
2.1.1 网站前台功能 3
2.1.2 网站后台功能 3
2.2 性能分析 3
2.3 系统用户用例图 4
3 系统设计 5
3.1 系统的总体设计 5
3.2 数据库的分析与设计 5
3.2.1数据库概念设计 6
3.2.2数据库物理结构 7
4 系统主要功能实现 11
4.1 系统注册页面实现 11
4.2 系统登录页面实现 12
4.3系统前台功能实现 14
4.3.1一级分类模块 14
4.3.2商品模块 16
4.3.3购物模块 22
4.3.4订单模块 24
4.3.5留言模块 26
4.4系统后台功能实现 27
4.4.1用户模块 27
4.4.2一级分类模块 28
4.4.3二级分类模块 32
4.4.4商品分类模块 36
4.4.5留言管理模块 38
5 系统测试与维护 40
5.1系统测试环境 40
5.1.1硬件环境 40
5.1.2软件环境 40
5.2系统测试内容 40
5.3系统维护 41
6总结 42
7参考文献 43
8致谢 44
2需求分析
2.1功能需求分析
2.1.1网站前台功能
1.首页:提供一个网站首页,显示该企业的商标,该网站用户的登录,注册,所有商品的一级分类,热门商品和最新商品的展示等。
2.用户的注册:针对还未注册的用户完成注册功能的使用,在注册的过程中涉及数据的合法性校验,以及利用ajax完成用户名是否已被注册的异步校验。
3.用户的登录:对于已经注册并且激活的用户提供的登录操作。
4.用户的退出:对于已经登录的用户,退出系统。
5.首页商品展示:展示出最新商品和热门商品。
6.分类页面商品展示:根据一级分类和二级分类去展示该分类下的所有商品
7.商品详情展示:点击某个商品时可以展示该商品的具体详细信息。
8.购物车:用于存放用户的购物内容,用户可根据自己的情况修改自己的购物车。
9.订单:对于已经登录的用户可以对购物车内容进行付款生成订单,可以为自己的订单进行付款或者查看。
10.留言评价分享:网站单独开辟了留言分享区域,供登录的用户自由发表评价分享心得信息,进行交流互动。
2.1.2网站后台功能
1.管理员登录:管理者根据账户和密码进行登录。
2.商品一级、二级分类管理:管理者可以对前台显示的一级、二级分类进行管理,包括添加、删除、修改操作。
3.商品管理:管理者可以对前台显示的商品进行管理包括添加,修改,删除,查询的功能,也可以上传商品的图片。
4.用户管理:管理者可以查看该网站中已经注册过的所有用户的所有信息。
2.2性能分析
响应时间:
忽略网络、硬件以及插件的因素,以本地测试为准,前台响应时间为0.8秒,后台操作响应时间:0.9秒。
3系统设计
3.1系统的总体设计
该系统的开发采用B/S模式,整个系统的构建基于ssm(Spring+SpringMvc+MyBatis)整合框架。
深入研究JavaEE体系结构,所项目的技术选型中选取的个个框架分别进行分析和研究。SpringMvc是一个web端框架。Mybatis是一个轻量级的持久层框架,以面向对象的方式提供了持久化类到数据库之间的映射,是一种优秀的ORM框架。Spring也是一种轻量级框架,它的IOC和AOP思想,值得架构师学习。通过三大框架的整合,可以很方便的构建出可扩展,可移植,可维护的软件系统。
SSM框架是目前J2EE领域中最热门而且用的比较成熟的一套开源框架,它是基于MVC设计模式之上,充分发挥了MVC的优点。SSM是一套轻量级框架,相对于EJB而言,SSM继承了它的优点的同时,在开发和执行效率上也有了明显的提高,而对于开发者而言,它比EJB更加易学和掌握。目前SSM框架也正在不断地进行优化和维护,运行也是越来越稳定。
根据以上功能分析,得到系统功能模块结构图如图3-1所示:
图3-1系统功能模块结构图
package com.shop.Utils;
import java.util.List;
public class PageBean<T> {
private int page;//第几页
private int totlePage;//一共多少页
private int limitPage;//每页多少个
private List<T> list;//目标集合
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotlePage() {
return totlePage;
}
public void setTotlePage(int totlePage) {
this.totlePage = totlePage;
}
public int getLimitPage() {
return limitPage;
}
public void setLimitPage(int limitPage) {
this.limitPage = limitPage;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public String toString() {
return "PageBean [page=" + page + ", totlePage=" + totlePage
+ ", limitPage=" + limitPage + ", list=" + list + "]";
}
}