资源描述
精品文档,值得拥有
1 网上购物系统概述
1.1系统开发背景
Internet 的迅速发展正以前所未有的深度和广度影响和改善着人类生活的各个方面,越来越多的人开始意识到Internet所蕴含的经济价值的无穷商机,并积极投身于电子商务活动。实际上,电子商务是一些商业行为的电子化。互联网的兴起从本质上改变了整个社会的商品交易方式,并且逐渐渗入到生活的各个领域,网上购物已成为人们日常生活消费的重要选择。B/S结构
的应用系统在我国飞速发展,越来越多的企业借助网络平台进行销售。基于WEB平台的网上购物系统可以借助与遍布全球的Internet进行,极大的方便了人们的生活。进入21世纪以后,随着社会的发展进步,制约网上交易的各个瓶颈问题逐一解决,各企业也纷纷地加入到电子商城的洪潮之中。本系统正是基于自己网上购物的切身体会,了解各种购物流程后而设计出来的。矚慫润厲钐瘗睞枥庑赖賃軔朧碍鳝绢。
网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易[2]。这种全新的交易方式实现了公司间文档与资金的无纸化交换。聞創沟燴鐺險爱氇谴净祸測樅锯鳗鲮。
1.2 国内外研究现状
网上购物风潮出现在20世纪90年代末,在美欧日等一些发达国家网上购物模式已经发展得很成熟,我国网上购物系统开发和应用目前还处于多元化状态。调查表明:美国的家庭已经越来越习惯于在家中从网上购物。在我国,网上购物从无到有也不过短短几年时间,种种数据显示,在中国发展网上购物具有良好的群众基础,网上购物方式逐渐成为主流消费方式。本次所选课题希望自己能将所学运用在实际开发中,是网上购物系统具备一般电子商城的购物流程,并添加系统后台的管理部分,使其成为一个功能完整的网上购物系统。残骛楼諍锩瀨濟溆塹籟婭骒東戇鳖納。
1.3 系统开发的意义
网上购物系统作为B2B,B2C[3](Business to Customer,即企业对消费者),C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。互联网已经渗入到人类日常生活的各个领域,因社会生活的快节奏,网上购物已成为人们日常生活消费的重要选择。B/S结构应用系统在我国飞速发展,越来越多的企业借助网络平台进行销售。基于WEB平台的网上购物系统可以借助与遍布全球的Internet进行,极大的方便了人们的生活和节省了消费者的人力物力和财力。Jsp是一种交心的技术,国内采用的很少,目前在国内PHP[4]与ASP应用最为广泛。采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算、数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windowsd的COM/DCOM获得ActiveX规模支持,通过DCOM和Transcation Server获得结构支持;JSP可以通过SUN Java的Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere 。总的来说,ASP,PHP,JSP三者都有相当数量的支持者,而这三者也各有所长,在开发过程中,我们应该根据实际的需要来使用最合适的技术,本次所选课题采用的是较新jsp技术,一方面jsp的安全性和跨平台性比较好,另一方面,因为平时对jsp比较感兴趣,想通过此次毕业设计系统的学习下jsp这门编程语言。此次网上购物系统就是为了适应越来越广泛的网络销售模式而设计开发的,网站可实现网上购物,通过注册,网上选购,放入购物车,形成订单等功能。酽锕极額閉镇桧猪訣锥顧荭钯詢鳕驄。
1.4 课题研究的方法
目前的可用的设计技术在设计此类系统上已经非常成熟,可提供的开发工具也很多,例如: Visual Basic,PowerBuilder,Dephi,visual foxpro,java, Visual C++ 等,它们都是很好的可视化开发工具,并且功能强大,开发容易,开发周期短,对于本任务都能够胜任。但经过考虑,本次系统将采用MyEclipse集成开发环境
,另外还需要JDK开发工具包和Tomcat服务器,数据库采用Mysql。系统开发所需配置:操作系统以WIN7为平台,JAVA开发工具包使用JDK5,WEB服务器使用Tomcat6,数据库使用Mysql,IDE使用MyEclipse.本系统使用Structs2框架进行开发。彈贸摄尔霁毙攬砖卤庑诒尔肤亿鳔简。
1.5 框架简介
1.5.1 MVC模式简介
MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。謀荞抟箧飆鐸怼类蒋薔點鉍杂篓鳐驱。
图1-1 MVC组件图
MVC架构最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC架构作为开发Web应用的架构模式。MVC架构是一种架构,其实需要其他模式协作完成。在J2EE模式目录中,通常采用service to worker模式实现,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式组成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中。厦礴恳蹒骈時盡继價骚卺癩龔长鳏檷。
MVC架构是一个复杂的架构,其实现也显得非常复杂。但是,我们已经总结出了很多可靠的设计模式,多种设计模式结合在一起,使MVC架构的实现变得相对简单易行。Views可以看作一棵树,显然可以用Composite Pattern来实现。Views和Models之间的关系可以用Observer Pattern体现。Controller控制Views的显示,可以用Strategy Pattern实现。Model通常是一个调停者,可采用Mediator Pattern来实现。 茕桢广鳓鯡选块网羈泪镀齐鈞摟鳎饗。
1.5.2 STRUCTS模式简介
Structs
这个名字来源于再建筑和旧式飞机中使用的支持金属架。顾名思义它给开发者提供一个基本的框架和众多组件,在此框架下生产出的产品必然大量节省时间而且产品趋于标准化,Structs能充分满足应用开发的需求,简单易用,敏捷迅速,成为最成功的J2EE框架之一。鹅娅尽損鹌惨歷茏鴛賴縈诘聾諦鳍皑。
图1-2 Structs框架的组件结构图
Structs是APACHE基金会JAKARTA项目组的一个开源项目,它采用MVC模式,能够很好的帮助JAVA开发者利用J2EE开发WEB应用,它能大量减少开发WEB应用的时间,提高产品的重用度。Structs主要采用SERVLET和JSP技术来实现,它把SERVLET、JSP
、自定义标签和信息资源整合到一个统一的框架中,Structs只有一个中心控制器,它采用XML定制转向URL,采用ACTION来处理逻辑,开发人员利用其进行开发时不用再自己编码实现全套MVC模式。籟丛妈羥为贍偾蛏练淨槠挞曉养鳌顿。
1.6开发环境及工具介绍
1.6.1 MyEclipse简介
MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错[13]。預頌圣鉉儐歲龈讶骅籴買闥龅绌鳆現。
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率[14]。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。渗釤呛俨匀谔鱉调硯錦鋇絨钞陉鳅陸。
在结构上,MyEclipse的特征可以被分为7类:1、JavaEE模型;2、WEB开发工具;3、EJB开发工具;4、应用程序服务器的连接器;5、JavaEE项目部署服务;6、数据库服务;7、MyEclipse整合帮助[15]。对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse[16]。铙誅卧泻噦圣骋贶頂廡缝勵罴楓鳄烛。
在本次网上购书平台系统开发过程中我们使用的是MyEclipse6.5版本。
1.6.2 数据库开发工具MySQL
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度[17]。目前MySQL被广泛地应用在Internet上的中小型网站中。擁締凤袜备訊顎轮烂蔷報赢无貽鳃闳。
由于MySQL具有很多优点如:使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统;为多种编程语言提供了API,这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等;支持多线程,充分利用CPU资源;优化的SQL查询算法,有效地提高查询速度;既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名;提供TCP/IP、ODBC和JDBC等多种数据库连接途径;提供用于管理、检查、优化数据库操作的管理工具;可以处理拥有上千万条记录的大型数据库。其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[18]。贓熱俣阃歲匱阊邺镓騷鯛汉鼉匮鲻潰。
与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度[19]。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。坛摶乡囂忏蒌鍥铃氈淚跻馱釣缋鲸鎦。
在本次网上购书平台系统开发过程中我们使用的是MySQL5.1版本。
1.6.3 Tomcat服务器
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器[21]。目前最新版本是6.0。蜡變黲癟報伥铉锚鈰赘籜葦繯颓鲷洁。
Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的 改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 買鲷鴯譖昙膚遙闫撷凄届嬌擻歿鲶锖。
Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。綾镝鯛駕櫬鹕踪韦辚糴飙钪麦蹣鲵殘。
2 主要功能及设计思路
2.1 主要功能
设计要求实现的主要功能具体包括以下内容:
用户可以在网站上修改个人资料、修改个人进入网站的密码、查询提交的订单以及查询个人在网站上的消费情况。
实现购物车和下单的功能,用户选择所需商品后,在线提交商品订单
网站根据商品的销售情况及厂家信誉度来推荐并展示部分商品。
展示网站最新的商品信息,不断更新商品种类,使用户了解最新的市场动态。
根据商品的销售情况进行销量排行。
对商品信息进行管理,选择商品类别将商品具体信息和图片信息都存储在数据库中,并可以修改或者删除商品信息。驅踬髏彦浃绥譎饴憂锦諑琼针咙鲲鏵。
可以查看和查询用户详细信息、用户消费信息。
对用户提交的订单,根据情况进行阶段处理。
对管理员信息进行维护管理。
系统运行稳定、安全可靠。
2.2 设计思路
一般来说,一个完整的网上购物系统包括信息流、资金流与物流3个要素,它们是相辅相成的。信息流是网络向用户展示所售商品的相关信息,引导客户通过网络进行购物;资金流就是使客户在选择商品后,能够通过网络支付相关费用;物流就是使用不同配送方式,将客户所购买的物品送至客户手上。因此我们可以涉及相应的JSP页面向客户提供直观商品及相应消费信息,当用户通过页面向SERVLET发送数据时使用Structs中的ActionForm组件,将用户提交的数据编译成Bean对象。模型层表示应用程序的状态和业务逻辑,我们可以使用SQL语句作为模型层。Structs提供了一个控制器组件ActionServlet,它继承HttpServlet的doGet()和doPost()方法,可以接受HTTP响应,并进行转发。同时还提供了使用XML进行转发Mapping(映射)的功能。用户请求通过ActionServlet来处理和转发,需要描述用户请求路径和Action映射关系的配置信息。在Structs中,这些配置信息都存储在特定的XML文件structs-config.xml中。在该配置文件中,每一个Action的映射信息都通过一个<action>元素来配置,这些配置信息在系统启动时,被读入内存,供Structs在运行期间使用。猫虿驢绘燈鮒诛髅貺庑献鵬缩职鲱样。
2.3 网站设计的目标
本网站设计的主要目标是实现一个基于STRUTS开发平台的网上购物系统。在网页设计开发过程中主要用STRUTS模式来搭建网站的开发平台,在网站中要实现一般网站都具有的用户登录注册功能,用户购物功能,用户下单功能,商品的管理功能、订单管理功能、管理员管理功能等。锹籁饗迳琐筆襖鸥娅薔嗚訝摈馍鲰钵。
3 概要设计
3.1 模块划分
本程序分为前台和后台两个部分。
后台部分实现的功能有:
1.对商品的管理,如添加,删除。
2.对商品大类别(如食品类,玩具类)的操作,如添加,删除。
3.对商品小类别(具体商品)的操作,如添加,删除。
4.后台管理员的操作,如添加,删除。
5.管理员对用户的管理,如添加,删除。
6.管理员对订单的管理,如添加,删除。
前台部分实现的功能有:
用户的登录,注册,和找回密码。
商品展示(特价商品,销售排行商品)。
商品查询(按类别查询)。
订单查询。
添加商品到购物车。
查看购物车。
下单,填写订单。
3.2 功能模块图
后台登录
网上购物系统后台
订单设置
后台管理员
商品小类别设置
商品设置
商品大类别设置
管理员查询
管理员删除
订单详细查询
订单执行
商品小类别删除
商品查询
商品删除
商品大类别删除
订单查询
管理员添加
商品小类别添加
商品小类别查询
商品大类别添加
商品大类别查询
商品详细查询
商品添加
图3-1 后台模块图
网上购物系统前台
商品展示
商品查询
购物车
收银台
用户
结账
订单查询
按类别查看
按类别查询
销售排行
特价商品
新品上架
资料修改
注册
登录
填写订单
清空购物车
查看购物车
添加至购物车
图3-1
图3-2 前台模块图
3.3 程序工作流程图
为了更加清晰地表达系统的业务功能模块,下面给出网上购物系统的业务流程图,对于管理员和用户,它们所承担的任务各自不同,流程图也不一样。本系统包括面向用户的流程图和面向管理员的流程图两部分。構氽頑黉碩饨荠龈话骛門戲鷯瀏鲮晝。
面向用户的流程如图3-3所示。
用户
特价商品展示
销售排行榜
用户注册
下单
验证成功
N
购物车
Y
图3-3 用户的系统流程图
管理员
账户验证
验证成功
N
Y
后台管理员设置
订单设置
用户设置
商品大类别设置
商品设置
商品小类别设置
图3-4 管理员的系统流程图
4 详细设计
4.1 系统关键技术
4.1.1 Structs框架技术
Struts框架技术的基本原理在网上购物系统中,本系统将有表单的页面表单数据对应封装为一个ActionForm类(如管理员类,用户类等),并在ActionForm类中作数据验证,如果通过验证才会提交到作业务处理的Action类,Action类是用户请求与业务逻辑之间沟通的媒介。表单中数据项相同的页面,则可共用一个ActionForm类,甚至可以共用一个Action类。
在本系统中Struts的配置信息均写在struts-config.xml文件中。在struts-config.xml文件中配置各模块所涉及的<form-bean>元素,该元素用于指定各对应模块所使用的ActionForm,具体代码为:<form-bean name="" type="/">。在struts-config.xml文件中配置各模块所涉及的<action>元素,该元素用于完成对页面的逻辑跳转工作,具体代码为:<action name="" path="/"輒峄陽檉簖疖網儂號泶蛴镧釃邊鲫釓。
Scope="request" type=""><forward name="" path="/.jsp"/></action>
.尧侧閆繭絳闕绚勵蜆贅瀝纰縭垦鲩换。
4.1.2 下拉框动态显示与两个下拉框级联技术
通过request对象中,从页面上获取大类别的商品的集合bigList
List bigList=big.selectBig();
String id=(String)request.getAttribute("bigId");
if(id==null||id.equals("")){ //当id值为空时,设置id值为-1
id="-1"; //当id值为空时,没有大商品,因此没有小商品
然后通过bigId得到小商品的集合smallList:
Integer bigId=Integer.valueOf(id);
List smallList=small.selectOneBigId(bigId);
在页面显示大类别商品下拉框时,当bigId的值不为空时,选择大类别的商品,触发changeItem()函数,通过window.location.href对页面进行跳转;通过传入的bigId查出小类别商品的集合,最后在下拉框中显示出小类别商品的值。整个过程中先通过循环显示出大类别商品的值,当选择了一个大类别商品的值时就会触发js函数,js函数通过把传入的bigId作为参数进行页面跳转,跳转时通过sql语句得出此id下的小类别商品的集合,最后将集合中的值循环显示在小商品的下拉框中。页面代码如下:识饒鎂錕缢灩筧嚌俨淒侬减攙苏鲨运。
<td width="20%" height="26"> 所属大类别</td>
<td width="31%" bgcolor="#FFFFFF">
<select name="big" onChange="ChangeItem()"><option value="">请选择</option>凍鈹鋨劳臘锴痫婦胫籴铍賄鹗骥鲧戲。
<%for(int i=0;i<bigList.size();i++){
BigTypeForm bigForm=(BigTypeForm)bigList.get(i);
%>
<optionvalue="<%=bigForm.getId()%>" <%if(bigId.equals(bigForm.getId())){out.println("selected");}%>>恥諤銪灭萦欢煬鞏鹜錦聰櫻郐燈鲦軫。
<%=big.selectName(bigForm.getId())%>
</option>
<%}%>
</select></td>
<td width="20%"> 所属于小类别</td>
<td width="31%" bgcolor="#FFFFFF">
<select name="small"><option value="">请选择</option>
<%for(int i=0;i<smallList.size();i++){
SmallTypeForm smallForm=(SmallTypeForm)smallList.get(i);鯊腎鑰诎褳鉀沩懼統庫摇饬缗釷鲤怃。
%>
<option value="<%=smallForm.getId()%>"><%=smallForm.getSmallName()%>硕癘鄴颃诌攆檸攜驤蔹鸶胶据实鲣赢。
</option>
<%}%>
</select></td>
4.1.3 商品查询显示页面分页技术
通过request对象中的getAttribute()方法获取各种分页的数据,并将这些数据赋值给信息对象。首先获取所查询商品所有记录集合,然后获取所查询商品的所有记录数、最大页码、当前页码。显示页面的时候,根据这些变量值,分页显示商品信息。阌擻輳嬪諫迁择楨秘騖輛埙鵜蔹鲢幟。
4.2 数据库设计
4.2.1 数据库概念设计
本系统中使用的数据库实体应分为用户实体,管理员实体,商品实体,商品大类别实体,商品小类别实体,用户订单实体以及订单明细实体。 氬嚕躑竄贸恳彈瀘颔澩纷釓鄧鳌鲡貼。
用户实体包括自动编号、用户账号、用户密码、用户真实姓名、用户年龄、用户职业、用户电子邮箱、提示问题及问题答案属性。用户实体的E-R图如图4-1所示。釷鹆資贏車贖孙滅獅赘慶獷緞瑋鲟将。
电子邮箱
自动编号
用户真实姓名
用户职业
用户
用户密码
用户年龄
用户登录账号
提示问题
问题答案
图4-1 用户的E-R图
商品实体包括自动编号、商品名称、商品产地、商品介绍、商品发布时间、商品现价、商品销售次数、商品特价、商品图片及特价商品标识属性。商品实体的E-R图如图4-2所示。怂阐譜鯪迳導嘯畫長凉馴鸨撟鉍鲞谣。
商品名称
特价标识
发布时间
特价
商品产地
商品
现价
商品介绍
销售次数
自动编号
商品图片
图4-2 商品的E-R图
用户订单明细实体包括自动编号、订单编号、商品编号、商品价格和商品数量属性。会员订单明细实体的E-R如图4-3所示。谚辞調担鈧谄动禪泻類谨觋鸾帧鲜奧。
商品价格
订单编号
商品数量
订单明细
商品编号
自动编号
图4-3 会员订单明细的E-R图
4.2.2 数据库逻辑结构
本实例共含5张数据表,以下介绍几张。
表4-1tb_goods(商品信息表)
字段名
数据类型
是否为空
是否主键
默认值
描述
id
int(4)
No
Yes
ID(自动编号)
bigId
int(4)
No
NULL
大类别编号
smallId
int(4)
No
NULL
小类别表的外键信息
goodsName
varchar(50)
Yes
NULL
商品名称
goodsFrom
varchar(50)
Yes
NULL
商品产地
introduce
text(16)
Yes
NULL
商品介绍
creaTime
smalldatetime(4)
Yes
NULL
商品添加时间
nowPrice
money(8)
Yes
NULL
现价
freePrice
money(8)
Yes
NULL
特价
number
int(4)
Yes
NULL
销售数量
mark
bit(1)
Yes
NULL
是否特价商品
picture
varchar(50)
Yes
NULL
商品图片
表4-2tb_member(会员信息表)
字段名
数据类型
是否为空
是否主键
默认值
描述
id
int(4)
No
NULL
自动编号
name
varchar(50)
No
Yes
NULL
会员名称
password
varchar(50)
Yes
NULL
会员密码
reallyName
varchar(50)
Yes
NULL
真实姓名
age
int(4)
Yes
NULL
年龄
profession
varchar(50)
Yes
NULL
职业
email
varchar(50)
Yes
NULL
电子邮箱
question
varchar(50)
Yes
NULL
找回密码的问题
result
varchar(50)
Yes
NULL
找回密码的答案
表4-3tb_order(订单信息主表)
字段名
数据类型
是否为空
是否主键
默认值
描述
id
int(4)
No
NULL
自动编号
number
varchar(50)
No
NULL
商品订货编号
name
varchar(50)
Yes
NULL
会员编号
reallyName
varchar(50)
Yes
NULL
会员真实姓名
address
varchar(50)
Yes
NULL
订货地址
tel
varchar(50)
Yes
NULL
订货电话
setMoney
varchar(50)
Yes
NULL
价格
post
varchar(50)
Yes
NULL
运送方式
bz
text(16)
Yes
NULL
备注
sign
bit(1)
Yes
NULL
发送是否成功
creaTime
smalldatetime(4)
Yes
NULL
订单生成时间
表4-4tb_orderDetail(订单明细表)
字段名
数据类型
是否为空
是否主键
默认值
描述
id
int(4)
No
Yes
NULL
自动编号
orderNumber
varchar(50)
Yes
NULL
订货编号
goodsId
int(4)
No
NULL
商品编号
price
float(8)
Yes
NULL
价格
number
int(4)
Yes
NULL
订货数量
4.3 公共类设计
在开发过程中,经常会用到一些公共类
,如数据库连接类和字符串处理类。因此,在开发系统前,首先需要设计这些公共类。嘰觐詿缧铴嗫偽純铪锩癱恳迹见鲛請。
4.3.1 获取系统时间类
在该系统中,对系统时间操作类的名称为CountTime,在该类时间的操作中存在获取当前系统时间的方法。首先,实例化一个Date类,再实例化一个DateFormat类,定义系统时间显示方式,将系统时间通过DateFormat实例化对象中的format()发发格式化,并return.获取当前的系统时间,该时间的返回类型为DataFormat类的对象,DataFormat类格式化风格包括FULL、LONG、MEDIUM、SHORT。根据不同的风格,显示时间的格式也不同。熒绐譏钲鏌觶鷹緇機库圆鍰缄鹗鲚圆。
4.3.2 数据库连接类
在本系统中,对数据库连接类的名称为JDBConnection,在该类属性中设置连接Mysql的驱动、URL地址及生命connection类的实例,并通过构造方法获取数据库的连接。鶼渍螻偉阅劍鲰腎邏蘞阕簣择睜鲔诌。
4.3.3 字符串自动处理类
该字符串自动处理类继承了Structs框架中的RequestProcessor类,实现RequestProcessor类中的processPreprocess()方法,将form表单中的字符串转换成utf-8.RequestProcessor类中真正包含了Structs控制器在处理Servlet请求时所遵循的控制逻辑。在Structs中只允许在应用中提供一个ActionServlet类,但是根据需要可以存在多个客户化的RequestProcessor类。例如,对于包含有多个应用模块的Structs应用,每个应用模块都可以有各自的RequestProcessor实例,RequestProcessor类的process()方法负责各个实例的预处理请求操作。在本系统中,将字符串格式转码设置为预处理请求操作。纣忧蔣氳頑莶驅藥悯骛覲僨鴛鋅鲒嗚。
4.4 界面设计
4.4.1 前台首页设计
开发一个网站,好的页面风格和页面框架是非常重要的,特别是对于电子商城更需要有很好的页面风格和布局。在本购物系统的首页设计中,首先必须把商城推出的特价商品、最新商品链接展示给客户,然后再提供查看销售排行、查看订单、购物车、商品分类查询等业务。颖刍莖蛺饽亿顿裊赔泷涨负這恻鲑觶。
网页是网上购物系统对客户的直观显示,前台首页设计如图4-4
图4-4 前台首页
在主界面中,网站导航,用户登录以及后台入口并不仅存在于主页面中,其他功能模块的子页面中也需要包括这些部分,因此,可以将这几个部分分别保存在单独的文件中,这样,在需要放置相应功能时只需包含这些文件即可,如图4-5所示。濫驂膽閉驟羥闈詔寢賻減栖綜诉鲐卺。
fg-top.jsp
login.jsp
background.jsp
图4-5 前台主页面的布局
在本系统中,使用<jsp:include>动作元素,用于向当前的页面中包含其他的文件。
4.4.2 后台首页页面设计
后台主要用于管理员维护前台数据,包括商品设置、会员设置、后台管理员设置、订单设置、商品所属大类别及商品所属小类别设置,后台首页运行结果如图4-6所示。銚銻縵哜鳗鸿锓謎諏涼鏗穎報嚴鲍蝇。
图4-6 后台首页设计
4.4.3 商品显示页面设计
该系统有按销量显示和按特价显示,下面介绍按特价显示页面设计。
在电子商城首页,单击导航中的“特价商品”超链接图4-7:
图4-7 特价商品超链接
特价商品超链接代码如下:<a href="goodsAction.do?action=15&mark=1" class="a4">特价商品</a>挤貼綬电麥结鈺贖哓类芈罷鸨竇鲋鑿。
4.5 功能模块设计
4.5.1 用户登录模块
开始
用户只有通过登录模块的验证才能进入网站。当用户在“用户信息”区域中的“用户名”和“密码”文本框中输入用户名和密码后,单击“登录”按钮,如果验证成功,用户将以会员的身份进入电子商城首页面,并可以在网站中进行购物。用户登录模块的框架如图4-8所示:赔荊紳谘侖驟辽輩袜錈極嚕辫鏢鲈蕆。
用户登录
是否通过验证
否
是
浏览商
展开阅读全文