admin 管理员组

文章数量: 887021


2024年1月11日发(作者:花边图片素材)

购物网站设计与实现毕业论文

题 目:

毕业设计(论文)

基于Struts + Spring + Hibernate

的购物网站设计与实现

学生姓名 曹 逸

学 号 2

分 院 信息工程分院

专业班级 计算机503班

指导教师

曹 平

2009年5月

杭州

中文摘要

摘 要

本设计运用当前主流的Java技术,采用MVC开发模型,以Struts、Spring和Hibernate框架为基础开发了一个轻量级的网上购物系统。Struts用作控制器,Spring作为业务层,Hibernate作为数据持久层,开发中同时使用JSTL标签库。这些技术的整合,使得系统在各方面都能达到要求,并有利于系统的维护和升级。

系统分为前台部分和后台部分,前台部分主要实现的功能有顾客的注册和登录功能、查看商品信息功能、搜索商品的功能、购物车、收藏夹功能、个人信息维护管理功能;后台部分主要实现管理员管理商品信息、订单信息、目录信息和用户信息。其中购物车可以在用户未登录的情况下操作,并且原有的商品与现有的商品可以相互叠加。

关键词:网上购物系统;Struts;Spring;Hibernate;JSTL;MVC模式

英文摘要

ABSTRACT

This design uses the mainstream Java technology to develop a lightweight online

shopping application. MVC software developing model is adopted, based on the

popular framework consisting of Struts, Spring and Hibernate, where Struts behaves

as the controller layer, Spring as the service layer, and Hibernate as the data

persistence layer. JSTL library is also used. With all these technologies together, the

application achieves all the design purposes, and is flexible for update and

maintenance.

The application consists of two main subsystems, the front end subsystem and

the central management subsystem. For the front end subsystem, the features involve

customer registration, login, information retrieval on merchandises, product search,

shopping cart, preference folder, customer profile update. Product information

update, orders process, category and user information management are the functions

of the central management subsystem. In the mean time, the shopping cart can be

used without login, the selected item can be added automatically.

Key Words:Online shopping system;Struts; Hibernate;JSTL;The Model of MVC

目录

目 录

1

2

引 言 ...................................................................................................... 1

相关知识和技术背景 .............................................................................. 2

2.1J2EE 2 2 3 3 4 5 6概设MVC设框框、Spring标、Hibernate签的整计计模模述式式架架合库

定求用户规需求定2.2MVC2.3Struts

2.4Spring2.5Hibernate2.6Struts2.7JSTL3

系统需求分析 .......................................................................................... 7

3.1B2C 7 8 93.2确系统模块介绍

3.3.1对 9

3.3.2输 9

3.3.3数 9

3.3.4故 9

3.3.5运性入据障行III

3.3需能输管理处环的出能理境力规要要要需定求求求求

目录

4

系统概要设计 ........................................................................................ 10

4.1总 10体设计 9

4.1.1环 10

4.1.2系 10

4.1.3总 10

能境统体模配结模置构块块4.2功 11

5

系统详细设计 ........................................................................................ 17

5.1数 17据库设计4.2.1用户顾客注册、登录模 11

4.2.2商品检索、浏览模 12

4.2.3个人信息管理模 12

4.2.4购物车/收藏夹模 12

4.2.5后台登录模 13

4.2.6商品管理模 14

4.2.7商品目录管理模 14

4.2.8订单管理模 15

4.2.9会员管理模 16

块块块块块块块块块

5.1.1ER 17

IV

图设计

目录

5.1.2数 18

5.2架 27构据表设设计计

5.2.1带日志功能的设 27

配置文 27

5.2.3Struts配置文 28

5.2.4Spring配置文 28

5.2.5Hibernate自动生成的文 29

5.2.6工程包层次结 29

细模块设计件件件件构计5.3详 30

5.3.1顾 30

5.3.2商 30

5.3.3个 31

5.3.4购 31

5.3.5后 32

5.3.6后 32

5.3.7后 33

5.3.8后 34

5.3.9后客注册、登录模块品检索、浏览模块人信息管理模块物车/收藏夹模块台台商登品录管理模模块块台商品目录管理模块台台订会V

单员管管理理模模块块

目录

6

系统实现 ................................................................................................ 35

6.1环 35 36境要界面配及代置码 34

6.2主6.2.1前台界面显示及代码 36

6.2.2后台界面显示及代码 55

结论 ................................................................................................................. 59

致谢 ................................................................................................................. 61

参考文献 ......................................................................................................... 62

VI

浙江工业大学之江学院毕业设计(论文)

1 引 言

随着Internet的蓬勃发展,电子商务慢慢融入了我们的生活。如今,在发达国家通过Internet进行交易已成为潮流。由于网上电子商务的稳定性需求比较高,商城系统面临着严格的考验。不少商家、公司只制作一个或者几个产品介绍的界面,显然无法满足客户的需求。客户不能在在线订单,导致了他需要通过多种步骤来与商家取得联系。其弊端显而易见,首先是低效率、数据的严重冗余,其次是维护困难;显然这些简单链接构成的网站在数据的共享性、人机的交互性以及网站维护性上都有很大的问题。因此,开发一个基于web的动态网上购物系统是极其迫切的。

因此,PHP,ASP,JSP应运而生。

PHP语法简单,非常易学易用,很利于快速开发各种功能不同的定制网站。但是它没有一个大的公司去支援它,使的后续能力比较差。ASP简单且易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。JSP对于网站开发来讲不像PHP和ASP那样易学易用,支持JAVA的主机也少于支持PHP的主机,这从一定程度上限制了JAVA技术在网站上的发展,不过在企业软件应用上来讲,MVC还是拥有相当大的优势的,虽然其配置和部署相对其他脚本语言来说要复杂一些,但对于跨平台的中大型企业应用系统来讲,基于JAVA技术的MVC架构几乎成为唯一的选择。

电子商务从1995年以来得到了迅速发展,显现了巨大的现代商业价值。

在美、日等信息化程度较高的国家和地区,网络商店发展速度迅猛。尤其是美国,各类送货系统、快递运输公司、支付公司、安全、广告、商务软件、信息服务等新型物流和中介机构发展呈加速态势,并且有很大的发展空间。

在我国,网上购物从无到有也不过短短几年时间。根据中国网络经济研究报告,截止2009年中国互联网用户数量已达到3.22亿,有过网上购物经历的用户已经超过7400万人,并且这一数字还在以60%左右的速度增长。这说明在中国发展网上购物具有良好的群众基础,网上购物方式慢慢被大家所接受。

在技术方面,由于我国基本都使用windows操作系统,所以用VS平台开发比较多。但在发达国家不一样,比如美国,它有MAC操作系统,那里ASP将不再适用,它并不是很好的支持跨平台。

21世纪将进入电子商务时代,是社会发展的必然,我们将别无选择地生活在电子商务时代。如何面对电子商务方式、如何适应数字化生存并积极参与电子商务

时代的国际竞争,是涉及到每个人、每个企业、部门及国家发展与生存的重大问题,也是国家管理部门现在应该规划、并促进其发展的战略问题。

1

浙江工业大学之江学院毕业设计(论文)

2 相关知识和技术背景

2.1 J2EE概述

J2EE(Java 2 Platform, Enterprise Edition)是美国Sun公司推出的一种全新概念的模型,与传统的互联网应用程序模型相比有着不可比拟的优势。

典型的说,提供这些服务的应用软件必须同企业信息系统(EIS)相结合,并提供新的能向更为广阔的用户提供的服务。这些服务要具备以下的特点:

a. 高可用性:来满足现在的全球商业环境

b. 安全性:保护用户的隐私和企业数据的安全

c. 可依赖性和可扩展性:保证商业交易的正确和迅捷

通常这些服务是由分布的应用程序组成的,包括前端数据端和后端数据源以及它们之间的一层或几层,这些中间层提供了把商业功能和数据与EIS相结合的功能。这些中间层把客户端从复杂的商业逻辑中分离出来,利用成熟的INTERNET技术使用户在管理上所花费的时间最小化。

J2EE正式降低了开发这种中间层服务的成本和复杂程度,因而使得服务可以被快速的展开,并能够更轻松的面对竞争中的压力。J2EE 架构图见图2-1

2.2 MVC设计模式

MVC框架把业务逻辑、页面流程控制和用户界面分开,便于开发人员进行角色分工,实现分层及并行开发,有利于软件复用和重构,以及系统的维护和扩展。其中,“Model”代表的是应用的业务逻辑(通过Java Bean,EJB组件实现),“view”是应用的表示层(一般是JSP或JSF页面),“Controller"是提供应用的处理过程控制,这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,降低了业务逻辑接口和数据接口之间的耦合,同时提高了代码的重用性。MVC工作原理见图2-2。

MySQLModelViewControllerDispatchRoutesWeb ServerBrowser

图2-1 MVC工作原理

2

浙江工业大学之江学院毕业设计(论文)

2.3 Struts MVC设计模式

Struts提供了Controller组件并且整合了其它技术来实现Model和View。对于Model,Struts可以使用标准数据访问技术,如JDBC和EJB。也可以使用第三方工具,如Hibernate。至于View,Struts支持JSP技术、JSTL和JSF,也可以使用Velocity模板,XSLT及其它表示系统。此外Struts提供了自定义的标记库,可以辅助JSP进行表示层的设计,通过这些自定义标记可以和系统的Model部分进行交互。Struts的核心组件有ActionServlet,Action,ActionForm,ActionMapping,ActionForword,TagLib以及配置文件等。我们用JSP技术结合Struts强大的TagLib来实现我们的表示层。

EventHTTPRequestClient View JSPModel Application StateController ServletDispatchBusiness Logic ActionUpdateHTTPResponse

图2-2 struts 1 架构图

2.4 Spring框架

Spring是一个以依赖注入(inversion of control IOC)原则和面向方面编程思想(aspect-oriented programming,AOP)为基础的轻量级框架。Spring既是一个AOP框架,也是一个IOC容器。运用AOP可以创建“横切关注点”(Crosscutting Concerns),在应用时将它们插入代码中,使得代码有良好的可重用性。IOC容器允许在需要生成对象的地方创建一个应用上下文,然后将这些对象传递给它们的合作对象。它可以很容易地替换业务对象,只要用Java Bean属性和配置文件加入依赖性,然后就可以很容易地在需要时替换具有类似接口的协作对象。Spring还提供了可以和总体的IOC容器集成的强大而灵活的MVC Web框。Spring是一个轻型容器,其核心是Bean工厂,用以构造我们所需要的Model。在此基础之上,Spring提供了AOP的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展Application Context更加方便我们实现J2EE的应用;DAO/ORM的实现也更方便我们进行数据库的开发:Web MVC和Spring Web提供了Java Web应用的框架或能够与其它流行的Web框架进行集成。

从设计理念可以看到Spring帮助你实现了真正的逻辑层和Web层的分离。 3

浙江工业大学之江学院毕业设计(论文)

Spring模块是构建在核心容器之上的,核心容器又定义了创建、配置和管理Bean的方式。Spring使用基本的Java Bean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

图2-3 spring 架构图

2.5 Hibernate框架

Hibernate是一个实现对象和关系之间映射(object relation mapping,0RM)的开源框架。它对JDBC进行了轻量级的对象封装,使得JAVA程序员可以使用面向对象的编程思维来操作关系数据库。如果在软件开发中采用面向对象的方式进行设计,而使用的是关系数据库,就可以选用Hibernate这种框架来实现对象和关系之间的映射和数据的持久化。Hibernate拥有一种功能非常强大的查询语言HQL,这种语言与SQL相似,而且完全是面向对象的。它查询的是持久化对象,而不是数据库的记录,而且它可以支持多态、继承、关联等关系。

Hibernate利用数据库配文件:hibernate.properties、XML Mapping等为应用程序提供数据持久服务的,又通过读取配置文件()和类的映射文件(XML Mapping)中的内容,生成SessionFactory实例,并由它的openSession0方法负责每次所需的Session对象的创建,在Session对象的方法中借助持久化对象来完成对数据库的操作,而不需使用JDBC和SQL进行数据的操作。这样就避免手工编 4

浙江工业大学之江学院毕业设计(论文)

写访问数据持久层的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间,降低了开发的难度。

图2-4 hibernate 架构图

2.6

Struts、Spring、Hibernate的整合

综上所述,表现层采用Struts框架,业务逻辑层采用Spring框架取代EJB容器,数据持久层以Hibernate取代实体Bean,提供具体的数据库数据处理操作,三者进行有机整合,构成轻量级J2EE应用框架。

整个轻量级框架业务流程为:用户接口层利用JSP+HTML页面实现交互界面,负责传送页面请求和接收响应,表示层Struts收到请求,调用相应的Action,处于业务层的Spring IOC容器负责向Action提供业务服务组件(Service)和相应的数据访问处理组件(DAO),并提供事务处理、日志管理等一系列系统服务,处于持久层的Hibernate负责对象化映射与数据库交互,具体处理DAO组件请求,并返回结果。

我们把整合后的框架分成四层,这四层分别是:实体层、DAO层、服务层、Web层。每个层在处理应用程序上都应该有一项明确的责任,而不应该在功能上与其它层混合,并且每个层要与其它层分开的,但要给他们之间放一个通信接口。

5

浙江工业大学之江学院毕业设计(论文)

图2-5 SSH 架构图

2.7

JSTL标签库

JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。但是在即将推出的JSP 2.0中是作为标准支持的。

JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。

JSP标准标记库(JSP Standard Tag Library JSTL)是一个实现Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML操作以及数据库访问。

JSTL 1.0 有四个定制标记库:core、format、xml 和 sql.

标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。

标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。

库包含一些标记,这些标记用来操作通过 XML 表示的数据。

库定义了用来查询关系数据库的操作。

6

浙江工业大学之江学院毕业设计(论文)

3 系统需求分析

3.1 B2C系统模块介绍

 B2C即企业通过互联网为消费者提供一个新型的购物环境——网上商店,消费者可以通过网络在网上购物、亦可在网上支付。本系统主要分为前台部分和后台部分,前台部分主要实现的功能针对顾客使用,有顾客的注册和登录功能、个人信息维护功能、查看商品信息功能、搜索商品的功能、购物车功能、收藏夹功能;后台部分主要由商城的管理员使用,有管理商品信息功能、管理商品目录功能、管理订单信息功能、管理注册会员功能。这里的模块主要按照使用者不同进行分配。

网上购物商城系统前台部分后台部分顾客注册登陆个人信息维护查看商品信息搜索商品信息顾客购物车顾客收藏夹管理商品信息管理商品目录管理订单信息管理注册会员

图3-1 本系统的前台部分和后台部分模块

它们各自的功能如图3-1所示:

1) 前台部分

 首先顾客可以方便地注册与登录。未注册的顾客可进行商品的查看,也可把商品放入购物车;未注册的顾客可进入注册页面进行注册,但是若其顾客恶意破环,后台的管理员可以对其会员进行删除。

 顾客可以灵活地检索所需的商品信息。可采用关键字搜索。

 顾客可以方便地查看详细的商品资料。

 顾客可管理自己的购物车(包括添加或删除选购商品、修改商品购买数量、放入收藏夹及在线下订单等操作)。

 顾客可管理自己的收藏夹(包括添加或删除选购商品、放入购物车等操作)。

2) 后台部分

 管理员可以方便地管理商品(新增、删除、修改商品信息)。

7

浙江工业大学之江学院毕业设计(论文)

 管理员可以查看订单、审核、发货、取消处理。

 管理员可以删除顾客的信息。

 管理员可以对商品目录进行管理(新增、删除、修改商品目录信息)。

3.2 确定用户需求

要求不同类型的用户拥有不同的功能,具体用户类型包括:后台管理员,顾客(未注册或未登录用户,登录用户)。用例图如下(图3-2,图3-3):

商品目录管理商品管理后台登陆管理员订单管理会员管理

图3-2 后台管理员用例图

顾客登陆注册下订单管理商品检索及浏览未注册/未登录顾客购物车管理登录顾客收藏夹管理个人信息管理图3-3 前台顾客用例图

8

浙江工业大学之江学院毕业设计(论文)

3.3 需求规定

3.3.1 对性能的规定

 要按照严格的格式输入,否则数据库不给予响应进行处理;

 查询时要保证所有包含查询关键字的记录都能查到;

 尽量减少服务器的压力;

3.3.2 输入输出要求

 尽量减少输入数据量;

 输入数据格式;

 引导操作的提示;

3.3.3 数据管理能力要求

 长久保存的数据存入数据库;

 购物车给于15天保存期;

3.3.4 故障处理要求

 尽可能的保证数据库完好无损;

 时常备份数据库;

3.3.5 运行环境需求

1)

2)

设备

一台具备Microsoft Windows XP/VISTA系统计算机;

支持软件

(1)用户基础软件配置

操作系统:Windows XP;

相关软件工具: MyEclipse 6.6;

(2)开发工具

平台:Windows XP;

服务器:Tomcat 6.0;

数据库:MySQL 5.0;

相关类库:Struts、Spring、Hibernate、JSTL等;

(3)测试环境

Windows XP + IE8。

9

浙江工业大学之江学院毕业设计(论文)

4 系统概要设计

4.1 总体设计

4.1.1 环境配置

B2C系统都基于JDK1.6开发并测试,采用Tomcat 6.0做Web服务器,并在基于MyEclipse 6.6的平台上开发并测试运行,数据库采用关系数据库MySQL 5.0。如此搭建出一个稳定的适于系统的应用开发运行环境。

Java开发包J2SDK(Java 2 Software Development Kit)是基于Java软件开发的前提。J2SDK简称JDK,JDK1.6仍是目前的主打。

Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。曾被JavaWorld杂志评为最具创新的Java产品(Most Inovative Java Product),同时它又是Sun公司官方推荐的Servlet和JSP容器。

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。MyEclipse是Eclipse的插件,集成了对Spring、Struts、Hibernate等主流Java EE组件开发插件的支持,大大简化了Java EEj应用的开发。

MySQL是由MySQL AB公司开发、发布并支持的全世界最流行的开源SQL数据库管理系统,目前最新版本为MySQL5.0,对存储过程、触发器和视图有了很好的支持,成为开源数据库之首选。

4.1.2 系统结构

整个系统的架构设计遵循MVC模式,将展示层、控制层、模型层(业务逻辑层)及持久层进行合理分离。表现层采用Struts框架,业务逻辑层采用Spring框架取代EJB容器,数据持久层以Hibernate取代实体Bean,提供具体的数据库数据处理操作,三者进行有机整合,构成轻量级J2EE应用框架。

整个轻量级框架业务流程为:用户接口层利用JSP+HTML页面实现交互界面,负责传送页面请求和接收响应,表示层Struts收到请求,调用相应的Action,处于业务层的Spring IOC容器负责向Action提供业务服务组件(Service)和相应的数据访问处理组件(DAO),并提供事务处理、日志管理等一系列系统服务,处于持久层的Hibernate负责对象化映射与数据库交互,具体处理DAO组件请求,并返回结果。

4.1.3 总体模块

总体设计是把总体任务分解为许多基本的、具体的任务。这些具体任务合理地组织起来构成总体任务。其基本任务是将系统划分成模块,决定每个模块的功能,决定模块的调用关系,决定模块的界面及模块间信息的传递。

总体设计过程首先寻找实现目标系统的各种不同的方案。通常,设计出初步的软件结构后还要多方改进,从而得到更合理的结构,进行必要的数据库设计。

10

浙江工业大学之江学院毕业设计(论文)

注册登陆商品目录管理已登录会员查看搜索商品信息购物车管理个人信息管理收藏夹管理未注册未登录顾客商品管理管理员/

订单管理会员管理B2C数据库图4-1 B2C系统总体模块图

4.2 功能模块

B2C系统大致可以划分为9个功能模块:

4.2.1 用户顾客注册、登录模块

用户可以通过填写注册信息注册成为会员,会员登陆后可以进行个人信息管理和购物车等重要操作,未登录或未注册的顾客只能检索浏览商品信息和购物车处理。在注册信息时,系统会对注册信息进行有效性的验证,有效才会注册成功。填写注册基本信息输入帐号密码登陆注册信息有效性验证会员登陆验证是否有效无效返回重写是否成功成功成功登陆失败返回重新登陆有效完成注册

11

浙江工业大学之江学院毕业设计(论文)

图4-2 用户注册、登录模块活动图

4.2.2 商品检索、浏览模块

用户可以直接查看商品的全部信息(如商品名称、商品图片、商品价格、商品折扣、商品介绍等),也可以根据不同的商品种类浏览商品信息,也可以透过输入关键字对商品进行检索,查看其信息。

商品种类显示选择具体的商品种类分页查看商品所属种类信息输入关键字进行检索分页查看商品搜索信息商品详细信息

图4-3 商品检索、浏览模块活动图

4.2.3 个人信息管理模块

该模块可修改用户的一系列信息,包括修改用户名/昵称、密码;查看一个月内订单、已取消订单、全部订单;申请取消订单;管理地址簿(添加/修改/删除/是否为首要配送地址)。

修改用户名/昵称修改密码查看全部订单查看一个月内订单查看取消订单管理地址簿取消订单验证密码验证密码/新密码修改用户名/昵称成功修改密码成功是否为配送首要地址添加新地址修改地址删除地址

图4-4 个人信息管理模块活动图

4.2.4 购物车/收藏夹模块

顾客未登录时,选中商品可添加购物车;可对选中的商品进行修改购买数量、删除;清空购物车等操作。

当顾客登陆后,可对选中商品进行放入收藏夹操作;放入的商品可进行删除操作;当顾客要结账时,有配送地址选择。

12

浙江工业大学之江学院毕业设计(论文)

查看购物车将商品放入购物车放入收藏夹清空购物车删除购物车商品修改/查看商品购买数量会员登陆成功该用户以前购物车是否有这些商品该用户以前收藏夹是否有这些商品将商品放入收藏夹否否有购物车添加这些商品有收藏夹不做添加处理收藏夹添加商品原商品数量加上现有数量查看该用户的购物车查看该用户的收藏夹进入结算中心收藏夹商品删除放入购物车是否有配送地址修改购物车否有订单确定输入新地址图4-5 购物车/收藏夹模块活动图

4.2.5 后台登录模块

后台管理员输入账号密码可以在后台登录,登录验证模块根据输入的账号密码识别不同角色的管理员,然后进入不同的后台管理模块,账号密码输入错误后给出错误提示并要求重新输入。

13

浙江工业大学之江学院毕业设计(论文)

输入管理员账号密码失败后重输登陆验证商品管理模块商品管理目录模块订单管理模块会员管理模块

图4-6 后台登录模块活动图

4.2.6 商品管理模块

管理员可以查看商品种类和信息,并且可以进行新增、修改、删除商品等操作。

进入商品管理模块商品显示列表添加新商品修改商品删除商品

图4-7 商品管理模块活动图

4.2.7 商品目录管理模块

管理员可以查看商品父目录和子目录,并且可以进行新增、修改、删除商品父/子目录等操作。

14

浙江工业大学之江学院毕业设计(论文)

进入商品目录模块商品目录显示列表新增目录父目录显示子目录显示新增商品父目录新增商品子目录修改商品父目录删除商品父目录修改商品子目录删除商品子目录图4-8 商品管理目录模块活动图

4.2.8 订单管理模块

订单管理员登录后,可以根据日期范围、订单完成状态、订单编号等取得订单列表与查看某订单的详情,也可以修改订单的完成状态及订单中的商品或数量,还可以删除订单本身及订单中的商品。

进入订单管理模块审核中订单已审核订单已发货订单已取消订单已交易订单图4-9 订单管理模块活动图

15

浙江工业大学之江学院毕业设计(论文)

4.2.9 会员管理模块

管理员登录后,可以取得会员列表,可以对某个会员执行删除操作。

图4-10

进入会员管理模块会员显示列表删除会员会员管理模块活动图

16

浙江工业大学之江学院毕业设计(论文)

5 系统详细设计

5.1 数据库设计

5.1.1 ER图设计

图5-1 B2C系统ER图

映射文件中体现出来。

从图5-1可看出各数据表之间的各种关联关系,各关联关系将会在Hibernate的 注册用户与地址栏为一对多关联:一个用户可以有多个地址,而每个地址只能属于一个用户。

 注册用户与订单为一对多关联:一个用户可以有多个订单,而每个订单只能属于一个用户。

 订单与订单项为一对多关联:一个订单可以有多个订单项,而每个订单项只能属于一个订单。

 注册用户与收藏夹里的商品为一对多关联:一个用户可以有多个收藏夹商品,而每个收藏夹里的商品只能属于一个用户。

 商品目录与商品为一对多关联:一个商品目录可以有多个商品,而每个商品只能 17

浙江工业大学之江学院毕业设计(论文)

属于一个商品目录。

 购物车与商品为一对多关联:一个购物车可以有多个商品,而每个商品只能属于一个购物车。

5.1.2 数据表设计

表5-1 注册会员表(users)

字段名称 数据类型 主是描述

键 否允许为空

USERS_ID BIGINT(20) √ 会员的ID号

BONUSPOINT BIGINT(20) 外 会员键 积分的ID

LOGONID VARCHAR(30 登录) 账号

LOGONPASSWORVARCHAR(45 √ 登录D ) 密码

USERTYPE CHAR(3) √ 用户类别:A为管理员;C为用户

USERNAME VARCHAR(30 √ 昵称

)

STATUS INTEGER √ 用户18

浙江工业大学之江学院毕业设计(论文)

是否可用

REGISTRATION TIMESTAMP √ 注册时间

MEMBERCLASS CHAR(10) √ 用户级别

表5-2 地址栏表(address)

字段名称 数据类型 主是描键 否述

允许为空

ADDRESS_ID BIGINT(20) √ 地址栏ID号

USERS_ID BIGINT(20) 外 会键 员的ID号

USERNAME VARCHAR(30) √ 配送姓名

ISPRIMARY INTEGER 是否为主 19

浙江工业大学之江学院毕业设计(论文)

PROVINCE

ZIPCODE

SELFADDRESS

VARCHAR(30)

VARCHAR(10)

VARCHAR(256)

VARCHAR(30)

TEL

MOBILE VARCHAR(30)

MARKFORDELETE

INTEGER

要地址

邮编

配送地址

固定电话

移动电话

删除标记

表5-3 商品表(product)

字段名称 数据类型

PRODUCT_ID

主是描键 否述

允许为空

BIGINT(20) √ 商品的I 20

浙江工业大学之江学院毕业设计(论文)

CATEGORY_ID_PARENT

BIGINT(20) 外

PRODUCTNAME VARCHAR(100)

DECIMAL(20,2)

INTEGER

PRICE √

DISCOUNT √

QUANTITY INTEGER √

THUMBNAIL VARCHAR(254)

VARCHAR(3000)

DESCRIPTION √

LASTUPDATE

TIMESTAMP √

21

D号

商品类别的ID

商品名称

商品价格

商品折扣

商品数量

商品图片

商品描述

浙江工业大学之江学院毕业设计(论文)

MARKFORDELETE INTEGER

HOMETYPE INTEGER

后更新时间

√ 删除标记

√ 主页显示类别

表5-4 购物车表(shoppingcars)

字段名称 数据类型 主是描述

键 否允许为空

SC_ID BIGINT(20) √ 购物车的ID号

PRODUCT_ID BIGINT(20) 外 商品ID号

CARSESSION VARCHAR(4 未登录5) SESSION;登陆后值为用户名

PRODUCTNAVARCHAR(1 √ 商品名称

ME 00)

TOTALPRICE DECIMAL(20 √ 总金额

22

浙江工业大学之江学院毕业设计(论文)

DISCOUNT

CARNUM

DISPRICE

,2)

INTEGER

INTEGER

DECIMAL(20

,2)

表5-5 收藏夹表(wishlist)

字段名称 数据类型 主是否描述

键 允许为空

WISHLIST_ID BIGINT(20) √ 收藏夹ID号

USERS_ID int 外 用户ID

PRODUCT_ID int 外 商品ID

表5-6 订单表(Orders)

字段名称 数据类型 主是描键 否述

允许为空

ORDERS_ID BIGINT(20) √ 订单ID号

ADDRESS_ID BIGINT(20) 外 地键 址栏ID号

23

折扣

待购物商品数量

折扣总金额

浙江工业大学之江学院毕业设计(论文)

USERS_ID

STATUS

BIGINT(20)

CHAR(3)

CREATETIME TIMESTAMP

SHIPCHARGE DECIMAL(20,2)

TOTALPRICE

ADJUSTMENT

DECIMAL(20,2)

DECIMAL(20,2)

POINTPRICE DECIMAL(20,2)

DISCOUNTPRICE DECIMAL(20,2)

24

用户ID

订单状态

√ 创建时间

√ 配送费用

√ 总价格

打折完价格加上配送金额

积分获得

浙江工业大学之江学院毕业设计(论文)

折完价格

表5-7 订单项表(orderitems)

字段名称 数据类型 主是描键 否述

允许为空

ORDERITEMS_ID BIGINT(20) √ 订单项ID号

ORDERS_ID BIGINT(20) 外√ 订键 单ID号

PRODUCT_ID BIGINT(20) 外√ 商键 品ID号

CREATETIME TIMESTAMP √ 创建时间

QUANTITY INTEGER √ 数量

PRICE DECIMAL(20,2) 价格

DISCOUNTPRICE DECIMAL(20,2) 打 25

浙江工业大学之江学院毕业设计(论文)

折后最终价格

表5-8 目录表(category)

字段名称 数据类型 主是描键 否述

允许为空

CATEGORY_ID BIGINT(20) √ 目录ID号

CATEGORYNAME VARCHAR(3 目0) 录名称

MARKFORDELETE INTEGER 删除标记

LASTUPDATE TIMESTAM √ 最P 后更新

ISTOP INTEGER √ 是否是 26

浙江工业大学之江学院毕业设计(论文)

CATEGORY_ID_PARENT

BIGINT(20)

父目录

√ 所属父目录类别

5.2 架构设计

5.2.1 带日志功能的设计

在SSH整合时很容易出错,使用log4j日志,能够详细的知道错误的原因;不用log4j有些问题很难发现。

5.2.2 配置文件

在中配置中文过滤器、Struts标签库、Struts中央控制器ActionServlet及默认的欢迎文件列表等。下图为过滤器配置文件。

cc

Impl

cc

/*

27

浙江工业大学之江学院毕业设计(论文)

5.2.3 Struts配置文件

在Struts配置文件中主要配置:

 配置ActionForm Bean

 配置Struts-Spring插件

 配置Validator插件

图5-2 配置文件图

5.2.4 Spring配置文件

 Spring连接MYSQL

 Spring自动生成的方法联结

28

浙江工业大学之江学院毕业设计(论文)

5.2.5 Hibernate自动生成的文件

其中Abstract-前缀的为基类,DAO为方法。

5.2.6 工程包层次结构

图5-3工程包层次结构图

说明:

 src存放JAVA源代码

 bean存放一些FORM用到的JAVA集合

 hib存放所有与数据库操作相关的DAO类

 struts存放所有Struts的FormBean、Action类及消息资源文件

 b存放所有后台管理所用到的JSP页面

 CSS存放CSS样式表文件

 image存放应用中所有的图片素材文件

 JS存放应用中所有的JavaScript脚本文件

 upload存放应用中所有上传的图片文件

29

浙江工业大学之江学院毕业设计(论文)

5.3 详细模块设计

5.3.1 顾客注册、登录模块

顾客只有通过注册才能成为会员,会员只有登录后才能进行管理自己的收藏夹、订单等操作。

返回提示信息注册用户结果提示提交重新填写会员注册会员表单BeanUsersRegisterForm提交UsersRegisterAction表单验证用户登录结果提示会员登录提交会员表单BeanUsersLoginForm提交UsersLoginAction重新填写返回提示信息图5-4顾客注册、登录模块图

控制层Struts的实现:顾客将注册的表单提交之后,表单的内容由Struts自动封装到UsersRegisterForm对象中,并送交Validator进行表单有效性验证,如果验证失败则返回要求顾客重新填写,验证成功就将UsersRegisterForm对象提交给UsersRegisterAction进行处理,处理完后将提示信息返回并完成注册。

会员登录时,首先在中登录,提交之后,登录表单的内容由Struts自动封装到UsersLoginForm对象中,并提交到Validator进行表单有效性验证,如果验证失败则返回要求重新登录,验证成功就将UsersLoginForm对象提交给UsersLoginAction进行处理,处理完成后将处理结果返回并完成登录。

5.3.2 商品检索、浏览模块

用户与会员可以根据不同的商品种类浏览商品信息,也可以输入关键字进行商品检索。

控制层Struts的实现:顾客请求均通过直接调用Action类的相应方法进行处理,

Action类中的方法在收到请求后,根据具体的请求调用自己写的方法或者相应DAO方法完成数据库的访问与操作,并将检索得到的结果返回给Action, Action将最终的处理结果保存到request对象中,由相应的JSP页面展示出来。

30

浙江工业大学之江学院毕业设计(论文)

商品种类浏览商品搜索浏览商品详细信息结果展示首页商品请求商品种类浏览请求返回用户商品搜索浏览请求商品详细信息浏览请求首页目录显示

HomeShowCategoryAction首页商品显示

HomeShowDiscountAction商品种类浏览 BrowseShowAction搜索商品显示

ProductSearchShowAction

商品详细信息显示

DetailShowAction图5-5商品和特价商品检索、浏览模块图

5.3.3 个人信息管理模块

顾客在成功登录后,可以对订单、用户信息进行管理。

地址管理地址添加地址修改密码修改我的账户浏览会员昵称/用户名订单显示管理结果展示地址修改请求地址删除请求地址添加请求首要地址设置请求地址修改 AddressChangeAction地址删除 AddressDeleteAction地址添加 AddressInsertAction首要地址设置 AddressPrimaryAction地址栏显示 AddressShowAction订单取消 OrderDeleteAction昵称/用户名修改

UsersModifyProfileAction用户密码修改 UserChangePwdAction返回用户地址栏显示请求订单取消请求昵称/用户名修改请求用户密码修改请求

图5-6个人信息管理模块图

5.3.4 购物车/收藏夹模块

未登录会员即可进行购物车的管理;登录会员才能进行收藏夹操作。

31

浙江工业大学之江学院毕业设计(论文)

购物车/收藏夹浏览结果展示购物车商品清空请求购物车商品个别删除请求购物车处理请求购物车商品数量修改请求购物车/收藏夹显示请求收藏夹商品个别删除请求收藏夹添加请求购物车商品清空 CarClearAction购物车商品个别删除

CarClearOnlyAction购物车处理 CarDealAction购物车商品数量修改

CarnumUpdateAction购物车/收藏夹显示 CarShowAction收藏夹商品个别删除

WishlistDeleteOnlyAction收藏夹添加 WishlistInsertAction返回用户

图5-7购物车/收藏夹模块图

5.3.5 后台登录模块

后台管理员按职责与权限的不同共分为4种,共用同一个后台登录模块,系统根据输入的账号和密码来确定管理员的身份,以决定该管理员的操作权限。

返回提示信息登陆管理员结果提示提交重新填写会员注册会员表单BeanAdminLoginForm提交AdminLoginAction

图5-8后台登录模块图

5.3.6 后台商品管理模块

此模块的页面包括有浏览商品分类页面,新增商品分类页面,修改商品分类页面。

32

浙江工业大学之江学院毕业设计(论文)

商品管理显示商品修改商品添加结果展示商品添加商品修改商品添加 ProductInsertAction

商品修改 ProductEditAction

商品删除 ProductDeleteAction

商品显示 ProductAdminShowAction返回管理员商品删除商品显示图5-9后台商品和特价商品管模块图

5.3.7 后台商品目录管理模块

管理员成功登录后,才能进行对商品目录的管理操作。

商品目录显示管理商品目录添加商品父目录修改商品子目录修改

结果展示商品目录删除请求商品父目录修改请求返回管理员商品子目录修改请求商品目录添加请求商品目录显示管理请求商品目录删除 CategoryDeleteAction

商品父目录修改

CategoryEdit1Action

商品子目录修改 CategoryEditAction

商品目录添加 CategoryInsertAction

商品目录显示管理

CategoryShowAction图5-10后台商品目录管模块图

33

浙江工业大学之江学院毕业设计(论文)

5.3.8 后台订单管理模块

订单管理显示结果展示订单显示请求管理员返回订单处理请求订单显示 OrderAdminShowAction

订单处理 OrderDealAction

图5-11后台订单管模块图

订单是由会员在购物后,成功提交订单后产生的,从下单到结单中间还要经过订单受理和处理的过程。管理员成功登录后,才能进行订单的管理操作。

5.3.9 后台会员管理模块

管理员登录成功后,才能对各会员的信息进行管理操作。

订单管理显示会员管理显示结果展示会员显示请求管理员返回会员删除请求会员显示 UsersDealAction

会员删除 UsersDeleteAction

图5-12后台会员管理模块图

34

浙江工业大学之江学院毕业设计(论文)

6 系统实现

6.1 环境配置

1. 启动MySQL

首先在服务中将MySQL启动,再进入其可视界面管理工具MySQL Query

Browser。

图6-1 MySQL Query Browser图

2. 在Myeclipse6.0中进行开发与测试,配置Tomcat后开启。

35

浙江工业大学之江学院毕业设计(论文)

图6-2 MyEclipse界面图

6.2 主要界面及代码

6.2.1 前台界面显示及代码

在页面的右上角为导航条,点击可进入相应页面;在页面的中上角为搜索商品区,。中间分为左右两部分,左边为商品类别,点击可以浏览此类别的商品,右边分别为热荐商品和打折专卖,都以3个为单位在首页展示出来,可以进行查看详情操作。

图6-3 首页界面图

商品目录显示CategoryShowAction

LinkedHashMap> map=new

LinkedHashMap>();

List l=tegoryNameAll(1);//父目录

for(int i=0;i<();i++){

List l1=tegoryNameAll(0, (i).getCategoryIdParent());

((i), l1);

}

ribute("showCategory", map);

商品显示JSP页面主要代码:

36

浙江工业大学之江学院毕业设计(论文)

width="94"height="125" />

action="/w/?prodid=${tId}">${tname }

  • pattern="#,#00.00" />

  • ${nt }折

  • pattern="#,#00.00" />

  • 点击左边“图书”一栏,分页显示图书这一类商品。首先左边显示的是这一类折扣排行榜。这时候点击第一个商品的购买按钮,将会转至购物车页面(图6-7);点击收藏,跳转至登陆页面(图6-5);点击第一个商品名称或者图片,跳转商品详细介绍(图6-9)。

    图6-4 分类显示商品

    37

    浙江工业大学之江学院毕业设计(论文)

    下面为分页显示的控制实现代码部分及action中代码部分:

    上一页

    上一页

    ${r} 

    styleClass="page-out1">${r} 

    下一页

    下一页

    BrowseShowAction主要实现代码:

    if(pid<1){

    pid=1;}

    int count=unt(sid);

    if(pid>eCount()){

    pid=eCount();}

    List ll = oduct(sid, pid);

    ribute("showProduct", ll);

    int PageSize = eSize();

    ribute("PageSize", PageSize);

    int PageCount = eCount();

    ribute("PageCount", PageCount);

    ribute("count", count);

    int t=(pid-1)*3;

    ribute("from", t);

    ribute("pagecur", pid);

    List page = new ArrayList();

    for (int i = 1; i <= PageCount; i++)

    (i);

    ribute("page", page);

    用户登陆界面及错误信息显示,点击新用户注册,跳转到注册页面(图6-6)。

    38

    浙江工业大学之江学院毕业设计(论文)

    图6-5 提示登陆页面

    顾客必须注册和登录才能进入收藏夹和我的账户,当顾客要注册时进入注册页面时(伴有部分错误信息):

    图6-6 注册页面

    39

    浙江工业大学之江学院毕业设计(论文)

    depends="required,minlength,maxlength,validwhen">

    resource="false" />

    resource="false" />

    minlength

    6

    maxlength

    16

    test

    ((relogonpassword ==*this*) and (*this* !=

    null))

    用户名已存在代码:

    if(Logonid(onid()).size()!=0){

    ActionMessages a=new ActionMessages();

    ("userexist", new ActionMessage("ist"));

    ors(request, a);

    return rward("error");

    }

    if(!ifyCode().equals(rand)){

    ActionMessages aa=new ActionMessages();

    ("VerifyCode", new ActionMessage("Code"));

    ors(request, aa);

    return rward("error");

    }

    搜索商品,九州,“购买”跳转图6-8;“收藏”跳转图6-6;商品名跳转图6-8。

    40

    浙江工业大学之江学院毕业设计(论文)

    图6-7 搜索页面

    ProductSearchForm构造函数,下拉菜单全部是从数据库中读取:

    public ProductSearchForm() {

    ApplicationContext a = new ClassPathXmlApplicationContext(

    "");

    41


    本文标签: 商品 管理 订单 模块