2022年网上购物系统 .pdf
《2022年网上购物系统 .pdf》由会员分享,可在线阅读,更多相关《2022年网上购物系统 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、378 第 16 单元网上购物系统单元描述: 本单元主要探讨基于JavaEE 的 Web 应用系统的开发,将通过网上购物系统讲述使用JavaEE 框架技术开发Web 系统的过程。在描述该系统时,引入软件工程的概念,采用项目开发的顺序,一步一步展开。使学生在按照该案例进行操作的同时,提前体验以后软件开发岗位的工作。该系统采用B/S 模式的四层开发模型进行设计,其数据库层由MySQL 实现,表示层由JavaEE的 Struts 2 框架实现,业务逻辑层由Spring框架实现,数据持久化层由Hibernate 框架实现。单元目标:掌握系统开发的主要步骤;能够完成系统的需求分析和功能解析;了解系统数据
2、库设计的过程;掌握数据库层、数据持久化层、业务逻辑层、表示层的开发步骤。16.1步骤网上购物系统需求分析根据网上购物的基本特点,网上购物系统应具有如下基本功能:(1)用户管理,即用户登录、注册、注销操作;(2)商品浏览,即按照商品类别进行商品分类查询和浏览;(3)购物车管理,即将用户选购的商品加入购物车,实现购物车的查询和更新;(4)订单管理,即对用户选购的商品生成订单。根据上述系统功能分析,设计网上购物系统的功能模块图如图16-1 所示。16.2步骤 2网上购物系统数据库设计网上购物系统应包含用户、商品、商品分类信息,因此该系统的E-R 图如图16-2所示。图 16-1网上购物系统功能模块图
3、用户管理商品浏览购物车管理订单管理按照商品分类查询主界面注销注册登录查询更新添加生成订单信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 379 (1)用户:代表一个用户实体,主要包括用户信息,如用户名、密码、性别、年龄等。(2)商品分类:代表网上购物系统中已有商品的分类信息,如精品图书、数码产品等。(3)商品信息:代表具体商品的详细信息,如商品名称、价格、折扣、图片等。各个实体之间存在的对应关系如下。(1)商品分类与商品的
4、关系:一种商品属于一种商品分类,一种商品分类包含多种商品,因此该关系是一对多的关系。(2)用户与商品的关系:一个用户可以订购多种商品,一种商品可以被多个用户订购,因此该关系是多对多的关系。当用户购买商品时,系统要将购买信息记载入购物车中,产生临时购买信息,并记载下需要购买的数量;当用户确定要对自己所选择的商品下订单时,将产生对应的订单信息。因此该系统需要5 张表,分别为用户表、 商品信息表、 商品分类表、购物车表以及订单表。各表之间的关系图如图 16-3 所示。其中,用户表(user) 、商品分类表(productsort) 、商品信息表(productinfo )以及购物车表( cart)已
5、经在前面的章节中已经讲述过了,请读者参考。为了记录商品的图片信息,需要在商品信息表中添加一个picture 字段,该字段的定义如表16-1 所示。此处不再给出创建productinfo 表以及向该表插入记录的SQL 语句,请读者参考第10、11单元的内容自行修改,其余数据表的结构保持不变。列名数据类型长度是否允许为空说明picture varchar 30 允许为空记载图片名称图 16-2网上购物系统的E-R 图用户名密码性别年龄商品用户订购m n 购买数量价格库存量折扣图片商品分类属于n 1 类别名称商品名称图 16-3数据库中各表的关系图表 16-1“productinfo ”表“ pic
6、ture”字段的结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - 380 当用户确定要购买自己放在购物车中的商品时,便产生了订单,该系统的订单表(orders)的表结构如表16-2 所示。列名数据类型长度是否允许为空说明id int 4 主键订单编号userId int 4 不允许为空(外键)用户编号productId int 4 不允许为空(外键)商品编号address varchar 50 不允许为空用户地址telNum
7、 varchar 15 允许为空用户电话e_Mail varchar 50 不允许为空用户邮箱地址创建订单表( orders)的 SQL 代码如下:create table if not exists orders (id int primary key auto_increment, userId int not null, productId int not null, address varchar(50) not null, telNum varchar(15), e_Mail varchar(50) not null ); # 为“ orders”表添带有加级联删除和级联更新功能的外
8、键FK_order_productInfo 、FK_order_user。alter table orders add constraint FK_order_productInfo foreign key(productId) references productInfo(id) on delete restrict on update restrict; alter table orders add constraint FK_order_user foreign key(userId) references user(userID) on delete restrict on updat
9、e restrict; 16.3步骤 3网上购物系统框架搭建在编写代码之前,系统框架搭建的准备工作是必不可少的,应当首先将系统中可能要用到的文件夹创建好,将系统需要的JAR 文件复制出来, 这样可以方便以后的开发工作,也可以规范网站的整体架构,为后续开发和后续维护做好充足的准备。16.3.1工程目录结构解析1domain 文件夹下面将对网上购物系统的目录结构进行解析,首先是domain 文件夹,该文件夹主要存放 JavaBean 组件,其目录结构如图16-4 所示。该文件夹中存放了和数据库对应的各个表的JavaBean 类以及其对应的映射文件,另外还存放了一个特殊的JavaBean文件表 16
10、-2“orders”表的表结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 381 Cart.java,主要用于记录购物车中商品的详细信息。2dao 文件夹dao文件夹用于存放数据库操作的接口和实现类,其目录结构如图16-5 所示。3service 文件夹service 文件夹用于存放具体业务操作的接口与实现类,目录结构如图16-6 所示。4action 文件夹action 文件夹用于存放各种Action 类,目录结构如图1
11、6-7 所示。5filter 文件夹为 解 决 中 文 乱 码 问 题 , 创 建 过 滤 器Servelt :CharacterEncodingFilter.java 。 该文件的放在filter 文件夹中,其代码和之前案例中的代码相同,这里不再叙述。6database文件夹database文件夹中放shopping.sql 文件,该文件用于存放与 shopping 数据库操作有关的所有SQL 语句,代码已在之前的单元中已经叙述,这里不再重复讲述。7WebRoot 文件夹在该文件夹中包含所有的页面设计,其中image 文件夹存放的是页面上的图片,productImage 文件夹存放的是所有商
12、品的图片。该文件夹的目录结构如图16-8 所示。在页面设计方面,主页为图 16-4domain 的目录结构图 16-5dao 的目录结构图 16-6service 的目录结构图 16-7action 的目录结构图 16-8WebRoot 的目录结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 382 index.html 该页面分为四部分,页头为head.html,导航条放在左边由navigation.html 显示,正文为
13、content.html ,页脚为foot.html 。用户登录页面为login.jsp,用户注册页面为register.jsp,注册成功页面为registerSuccess.jsp,商品显示页面为showProduct.jsp,购物车中的商品信息显示页面为showCart.jsp,结算中心页面为accountCenter.jsp,出错页面为 error.jsp,成功页面为success.jsp。16.3.2创建 ShoppingSystem工程有了清晰的工程目录后接下来就是创建工程了,通过MyEclipse创建名为ShoppingSystem 的 Web 工程。创建过程此处不再讲述,请读者参
14、看以前的单元。工程创建完毕后,MyEclipse 会自动在WEB-INF 文件夹下生成一个lib 文件夹,将网上购物系统所需要的JAR 文件复制到该文件夹下,完成JAR 文件的添加。16.4步骤 4网上购物系统的代码实现16.4.1数据持久层的实现在 domain 包中创建与数据表对应的持久化类,以及与持久化类对应的映射文件。这些文件包括: UserVo.java、 uservo.hbm.xml 、 ProductInfoV o.java、 productinfovo.hbm.xml 、ProductSortVo.java、 productsortvo.hbm.xml 、 CartVo.jav
15、a、 cartvo.hbm.xml 以及 OrdersVo.java和 ordersvo.hbm.xml 。 这些文件的内容和第15 单元进阶式案例所在的CartSystem 工程的domain 中对应的文件相同, 但是 ProductInfoV o.java、 productinfovo.hbm.xml 、 OrdersVo.java和 ordersvo.hbm.xml 与之前的有所不同,现将ProductInfoV o.java、OrdersVo.java 这两个文件的代码展示如下,请读者参照第15 单元进阶式案例写出productinfovo.hbm.xml和ordersvo.hbm.x
16、ml 文件的代码。/ProductInfoV o.java 文件的代码package domain; public class ProductInfoV o private int id; private int sortId; private String productName; private float price; private float discount; private int inventory; private String discription; private String picture; /省略所有的getter、setter 方法名师资料总结 - - -精品资
17、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 383 /OrdersVo.java 文件的代码package domain; public class OrdersVo private int id; private int userId; private int productId; private String address; private String telNum; private String e_Mail; /省略所有的getter、se
18、tter 方法 16.4.2数据库连接的实现网上购物系统的数据库连接的配置在applicationContext.xml文件中,其中数据源datasource 的配置与第15 单元进阶式案例applicationContext.xml文件中的datasource的配置相同,此处不再叙述,下面给出sessionFactory 的配置。 org.hibernate.dialect.MySQLDialect domain/uservo.hbm.xml domain/cartvo.hbm.xml domain/productinfovo.hbm.xml domain/productsortvo.hbm
19、.xml domain/ordersvo.hbm.xml 16.4.3用户管理模块的实现用户管理模块包括用户登录、注册和注销三大功能,其具体实现过程详述如下。1用户管理数据库操作接口类UserDAO 及其实现类UserDAOImpl 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 384 在用户管理中,数据库操作的接口类为UserDAO ,该类共有3 个方法。(1)findByID(int userID):使用主键用户编号检索
20、一个用户的信息。(2)findByProperty(String propertyName,String propertyPsw):检查是否存在具有该用户名和密码的用户。(3)save(UserVo newUser):向数据库新增一个用户,完成新用户注册。接口类 UserDAO 的代码如下。接口类 UserDAO 的实现类UserDAOImpl 的代码如下。2用户管理业务操作接口类UserService 及其实现类UserServiceImpl 在用户管理中, 业务操作的接口类为UserService, 该类共有3 个方法, 完成对 DAO类相关方法的封装。接口类 UserService 的代
21、码如下。package service; import domain.UserV o; public interface UserService public UserVo findByID(int userID); public UserVo findByProperty(String propertyName,String propertyPsw); public void save(UserVo newUser); 接口类 UserService 的实现类UserServiceImpl 的代码如下。3用户管理的Action 类(1)用户登录管理LoginAction 类中的 execut
22、e()方法实现用户登录的功能,该方法依赖于Service 层,登录时需要验证用户输入的用户名和密码是否存在,如果存在需要将该用户放入Session对象中,以便该用户在购买商品或浏览该网站其它网页时能很好的确定用户身份。LoginAction类的代码如下。(2)用户注册管理RegisterAction 类中的 execute()方法实现用户注册的功能,该方法依赖于Service 层。注册时首先需要对用户输入的信息进行校验,校验的方法采用了Struts 2 中的 Validation框架,具体配置操作请参看第9 单元的进阶式案例。另外,相关国际化的内容也要参看第 9 单元的进阶式案例。Regist
23、erAction 类需要验证用户输入的用户名和密码是否存在,如果存在需要重新输入。RegisterAction 类的代码如下。(3)用户注销管理LoginOut 类中的 execute()方法实现用户注销的功能。注销时只需要将登录时加载到Session中的 user对象删除即可。LoginOut 类的代码如下。4用户管理模块的相关配置(1)在 struts.xml 中的配置(2)在 applicationContext.xml中的配置由于 LoginOut 类不是基于Service 层的,所以无需在applicationContext.xml中配置。(4)在 struts.properties
24、 的配置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 385 struts.objectFactory=spring struts.action.extension=action struts.locale=en_GB struts.custom.i18n.resources=Application (5)在 web.xml 中的配置web.xml 中的配置与第15 单元进阶式案例中同名文件的配置相同,此处不再讲述。5用户管
25、理的界面处理及运行效果(1)登录页面login.jsp 以及登录成功页面success.jsp 登录页面 login.jsp 以及登录成功页面success.jsp的代码与第15 单元的实例3 工程名为 SSHUserLogin 中同名文件的代码相同。此处不再重复。 运行效果与第15 单元的图15-16 相同。(2)注册页面register.jsp 注册成功页面registerSuccess.jsp 注册页面 register.jsp 以及登录成功页面registerSuccess.jsp的代码与第9 单元的进阶式案例工程名为RegisterStruts2 中同名文件的代码相同。此处不再重复。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年网上购物系统 2022 网上 购物 系统
限制150内