首页 当当网站购物网站设计毕业论文

当当网站购物网站设计毕业论文

举报
开通vip

当当网站购物网站设计毕业论文 毕 业 设 计 报 告 题 目:   当当网站系统开发   毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名: ...

当当网站购物网站设计毕业论文
毕 业 设 计 报 告 题 目:   当当网站系统开发   毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 注 意 事 项 1.设计(论文)的内容包括: 1)封面(按教务处制定的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 封面格式制作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画 3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序 1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计 说明书 房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载 )所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 摘 要 本网上购物系统是一个基于Internet,采用B2C(Business to Consumers)模式,并根据现有的网上购物系统的现状而设计开发的电子商务平台。它不但可以扩大商家的规模和市场影响力,而且可以减少企业的经营成本,提高工作效率。 本文首先介绍了网上购物系统的现状及开发背景,然后论述了系统的设计目标,系 统需求和总体设计方案,较详细的论述了系统的详细设计和实现。最后,本文对网 上购物系统进行了系统检测并提出了还需要改进的问题。 随着竞争的全球化,市场竞争变得空前激烈。很多企业把目光从“以产品为中心”转向“以客户为中心”,以求提高其核心竞争力。客户关系管理(Customer Relationship Management,CRM)自然成为企业关注的热点。为了在培训市场的竞争中取得优势,成都东软信息技术学院继续教育中心在广泛关注所有竞争环境的同时,正加大力度投入到关注客户资源。本系统主要为用户提供了会员注册,购物车管理,商品搜索,用户资料修改等功能,为管理员提供了商品管理,用户信息管理,新闻信息管理,广告链接管理等功能。在设计方面,本系统采用B/S三层结构,同时使用JSP技术进行动态页面的设计,从系统的安全性和代码的可重用性方面考虑,运用JavaBean对程序的关键代码进行封装。后台数据库选用Sql Server2000数据库。 开发过程中的难点是客户信息数据库的设计部分,因为培训市场的客户信息具有多样性和无规律性的特点。我经过反复的思考和研究,最后得出一个最佳方案。此方案能很好的解决客户性质多样、客户类别多样、个人与单位之间存在多对多关系、个人与电话号码和联系地址之间存在多对多关系、单位与电话号码和联系地址之间存在多对多关系的问题。 关键词:B/S结构;JavaBean;JSP;Sql Server2000 目 录 第一章:认识电子商务……………………………………………………………………1 1.1 电子商务内涵与分类…………………………………………………………………1 1.2 电子商务的基本流转程式……………………………………………………………2 第二章 电子商务安全…………………………………………………………………… 5 2.1 网络交易的风险和安全管理的基本思路……………………………………………5 2.2 客户认证………………………………………………………………………………5 第三章 系统分析与设计…………………………………………………………………7 3.1 平台组建…………………………………………………………………………… 7 3.2 系统分析…………………………………………………………………………… 8 3.2.3 管理员活动系统分析……………………………………………………………10 3.2.4 用户活动流程设计………………………………………………………………11 第四章 系统设计………………………………………………………… 13 4.1 电子商务系统的组成………………………………………………………………13 4.2 系统功能结构图……………………………………………………………………13 4.3 设计目标……………………………………………………………………………14 4.4 开发运行环境………………………………………………………………………14 4.5 数据库设计…………………………………………………………………………14 第五章 系统详细设计与实现………………………………………………………… 18 5.1 数据库操作的JavaBean的编写………………………………………………… 18 5.2 网站前台实现………………………………………………………………………21 5.3 特价商品模块实现…………………………………………………………………21 5.4 新品上架模块实现…………………………………………………………………22 5.5 商品分类模块实现…………………………………………………………………23 5.6 会员管理模块设计…………………………………………………………………25 5.7 销售排行模块设计…………………………………………………………………28 附录 A……………………………………………………………………………………29 附录 B……………………………………………………………………………………30 致谢………………………………………………………………………………………31 参考文献…………………………………………………………………………………32 第一章 认识电子商务 1.1 电子商务内涵与分类 1.1.1 认识电子商务 当代社会,人们已经深深的领略到信息革命第二次浪潮的冲击。现在信息技术突破了单位性和地域性的局限,实现了网络和全球化,以英特网为代表的现在信息网络正在以每月均15%的速度急剧增长,其应用范围也开始从单纯的通讯。教育和信息查询向更具效益的商业领域扩张。据统计,2000年英特网用户已经达到3亿用户,通过英特网实现的商业销售额突破1000亿美元。这一趋势告诉人们,电子商务在信息技术的强有力的推动下,已经叩响了人类的大门。计算机的全球联网,形成了与地域、空间无关的时间一体化市场,一种新的,基于计算机网络的新型商业机制正在逐步形成,这是处于激烈竞争环境中的各国政府、制造商、销售商及有关研究部门所不能回避的现实,在已经迈入21世纪的今天,认识电子商务、了解电子商务、进而参与电子商务,是每一位政府官员、每一位企业家和每一位消费者都必须认真对待的一项新任务。 1.1.2 电子商务的内涵与分类 (1)什么是电子商务 电子商务是指整个贸易活动的电子化;从涵盖的方面可以定义为:加以各方以电子交易方式而不是通过当面交换或是直接面谈方式进行的任何形式的商业交易;从技术方面可以定义为:电子商务是一种多技术的集合体,包括交换数据(如电子数据交换、电子邮件),获得数据(如共享数据库、电子公告牌)以及自动捕获数据(如条形码)等。 电子商务涵盖的业务包括:信息交换、售前售后服务(如提供产品和服务和细节、产品使用技术指南、回答顾客意见)、销售、电子支付(如使用电子资金转帐、信用卡、电子支票)、运输(包括商品的发送管理和运输跟踪,以及可以电子化传送的产品的实际发送)、组建虚拟企业(组建一个物理上不存在的企业,集中一批独立中小公司的权限,提供比任何单独公司多的多的产品和服务),公司和贸易伙伴可以共同拥有和运营共享的商业方法等。 (2) 电子商务的分类及其服务内容 1)按照交易对象分类 按照交易对象分类,电子商务可以分为三种类型: 第一种类型是企业与消费者之间的电子商务,即B2C电子商务。 第二种类型是企业与企业之间的电子商务即B2B电子商务。企业可以使用网络向供应商定货、接受发票和付款。 第三种类型是企业与政府方面的电子商务,即B2G电子商务。 2)按照商务活动内容分类 按照商务活动的内容分类,电子商务主要包括两类商业活动:一是间接电子商务——有形货物的电子定货,它仍然需要利用传统渠道如邮政服务和商业快递车送货;二是直接电子商务——无形货物和服务,如计算机软件、娱乐内容的联机订购、付款和交付,或者是全球规模的信息服务。 3) 按照使用网络类型的分类 根据使用网络类型的不同,电子商务目前主要有三种形式:一是EDI(Electronic Data Interchange,电子数据交换)商务;二是Internet(因特网)商务;三是Intranet(内联网)商务。 1.2 电子商务的基本流转程式 1.2.1 电子商务的交易过程 电子商务的交易过程大致可以分为以下四个阶段: (1) 交易前的准备 这一阶段主要是指买卖双方和参加交易双方的签约前的准备活动。 (2) 交易谈判和签定 合同 劳动合同范本免费下载装修合同范本免费下载租赁合同免费下载房屋买卖合同下载劳务合同范本下载 这个阶段主要是指买卖双方对所有交易细节进行谈判,将双方磋商的结果以文件的形式确定下来。 (3)办理交易进行前的手续 这一阶段主要是指买卖双方签定合同后到合同开始履行之前办理各种手续的过程。 (4) 交易合同的履行和索赔 这一阶段从买卖双方办完所有各种手续之后开始,卖方要备货、组货、包装、发 只到买方收到自己所购商品。索赔是买卖双方在交易过程中出现违约是进行的违约处理工作。 1.2.2  电子商务交易的基本流转程式 网络商品直销是指消费者和生产者或者需求方和供应方,利用网络形式所展开的买卖活动,B2C电子商务基本属于网络商品直销的范畴。这种买卖交易的最大特点是供需直接见面、环节少、速度快、费用低。由图1.2-1可以看出,网络商品可以分为以下几个方面: (1)消费者进入因特网,查看在线商店或企业的主页。 (2)消费者通过购物对话框填写姓名、地址、商品品种、规格、数量、价格。 (3)消费者选择支付方式,如信用卡,也可以选用借记卡、电子货币或电子支 (4)在线商店或企业的客户服务器检查支付方服务器,确认汇款额是否认可。 (5)在线商店或企业的客户服务器确认支付者付款后,通知销售部门送货上门。 (6)消费者的开户银行将支付款项传递到消费者的信用卡公司,信用卡负责发给消费者收费清单。 为保证交易过程中的安全,需要有一个认证机构对在因特网上交易的买卖双方进行认证,以确定他们的真实身份。这时图1.2-1就演变成1.2-2。 上述过程应当在SET协议下进行。在安全电子交易的四个环节中,即从消费者、商家、支付网关到认证中心,IBM、Microsoft、SUN均有相应的解决方案。上述过程也可以用图1.2-3表示 图1.2-2认证中心存在下的网络商品直销流转程式 第二章 电子商务安全 电子商务作为一种全新的业务和服务方式,为全球客户提供了更丰富的商务信息、更简洁的交易过程和更低廉的交易成本。伴随着因特网用户的迅速增加,网络交易也在积聚上升。然而当这一切发生变化,甚至发生逆转的时候,人们就不得不注意到其中的安全问题,并给予以高度的重视了。 2.1 网络交易的风险和安全管理的基本思路 2.1.1 网络交易风险凸现 大部分使用过计算机的人都遇到过计算机病毒的侵扰。他们的的黑手频频的伸向金融领域,现在又瞄准了电子商务。 2.1.2 网络交易的风险源分析 (1) 信息风险 从技术上看,网络交易的信息风险主要来自三方面: 1)冒名窃贼 黑客为了获取重要的商业秘密、资源和信息,常常采用源IP地址欺骗攻击。 2)篡改数据 攻击者未经授权进入网络交易系统,使用非法手段,删除,修改,重发某些重要信息,破坏数据的完整性。 3)信息丢失 交易信息的丢失,可能是三种情况:一是因为线路问题造成信息丢失;二是因为安全措施不当而丢失信息;三是在不同的操作平台上转换操作丢失信息。 (2)信息传递工程中的风险 信息在网络上传递时,要经过多个环节和渠道。由于计算机技术发展迅速,原有的病毒防范技术、加密技术、防火墙技术等始终存在着被新技术攻击的可能性。计算机病毒的侵袭、黑客的非法侵入、线路窃听等很容易使重要数据在传递中泄露,威胁电子商务的安全。 2.2 客户认证 客户认证(Client Authentication)是基于用户的客户端主机IP地址的一种认证机制,它允许系统管理员为具有某一特定IP地址的授权用户定制访问权限。 客户认证技术是保证电子商务交易安全的一项重要技术。客户认证主要包括身份认证和信息认证。前者用于鉴别用户身份,后者用与保证通信双方的不可抵赖性和信息的完整性。 2.2.1 身份认证 (1)身份认证的目标 (2)用户身份认证的基本方式 1)用户所知道的某个秘密信息,如用户知道的自己的口令 2)用户所持有的某个秘密信息(硬件)。 3)用户所具有的某些个人化参数,如指纹,声音,DNA等。 2.2.2 信息认证 商务活动往往是通过公开网络如因特网进行数据传输,这就对网络传输过程中信息的保密性提出了更高的要求。 2.2.3 通过认证机构认证 网上交易的买卖双方在进行每一笔交易的时候,都要鉴别对方是否可信的。 1)证书 在做交易时,应向对方提交一个由CA签发的包含个人身份的证书,以使对方相信自己的身份。 2) 数字证书 最常用的CA证书是数字证书。数字证书作为网上交易双方真实身份证明的依据,是一个经证书授权中心(CA)数字签名的、包含证书申请者(公开密钥拥有者)。 证书的格式遵循X.509标准。 3)认证机构 CA认证主要有:接受注册请求、处理、批准/拒绝请求,颁发证书。 在实际运作中,CA也可由大家都信任的一方担任。 如图2.2-1:CA认证 第三章 系统分析与设计 3.1 平台组建 电子商务系统的平台选择Windows xp + JDK1.3 + Apach Tomcat4.0+SQL Server2000。Windows2000和SQLServer是微软公司的产品早已经为大家所熟悉,这里就不做过多介绍,这一章主要给大家介绍一下WEB应用开发的新技术JSP。 3.1.1 JSP技术介绍 (1)JSP是什么 JSP就是一种Web编程脚本语言。利用这一技术可以建立先进、安全和跨平台的动态网站。 (2) JSP与其他动态网页技术比较 1)JSP与ASP 总的来说,Java Server Pages (JSP) 和微软的Active Server Pages (ASP)在技术方面有许多相似之处。 a.JSP技术是开放的技术 JSP和ASP技术明显的不同点:JSP技术基于平台和服务器的互相独立,支持广泛而专门,被各种工具包,服务器的组件和数据库产品开发商所提供。相比之下,ASP技术主要依赖微软的技术支持。 平台和服务器的独立性 JSP技术依附于一次写入之后可以运行在任何符合java语法结构环境中。 由于ASP技术是基于ActiveX控件技术提供客户端和服务器端的开发组件,因此ASP技术基本上局限于微软的操作系统平台。 开放的开发过程,开放的源代码 SUN应用互相协作的过程开发JSP技术。相反,ASP技术仅依靠微软本身的推动,其发展是建立在独占、封闭的开发过程基础上的。 JSP标签的可扩充性 由于定制标签技术,降低了开发者制作网页和向多个网页扩充功能的复杂程度。 JSP跨平台的可重用性 JSP的开发人员在开发过程中一直关注可重用性。JSP组件(EJB,JAVA BEAN,或定制的JSP标签)都是跨平台可重用的。 b.JAVA的优越性 JSP技术用java作为脚本语言,而ASP网页使用微软的Vbscript或javascript。 Java使开发人员的工作在其他方面也变得一样容易、简单。Java语言通过提供防止内存泄漏的方法,在内存管理方面也大显身手。加之,JSP还提供了健壮的意外事件处理机制。 3.1.2 JSP与CGI CGI(Common Gateway Interface)是公用网关接口,可以称它为一种机制,因此CGI程序可以用不同的语言来编写,事实上,这样的编制方式比较困难而且效率低下,以为每一次修改都必须重新将CGI程序编译成可执行文件。下面从几个方面比较JSP与传统CGI的特性。 3.1.3 JSP与PHP PHP和JSP都具有良好的可移植性。他们都能够运行在各种不同的平台上。但是需要注意的是:PHP对数据库操作的接口繁多,这样设计的初衷也许是方便用户,但是却给移植带来了麻烦。 3.1.4 平台搭建 在确定技术之后要作的就是搭建平台了,由于我们选用了JSP技术,所以我们需要安装java开发工具集(JDK)和Tomcat(网站服务器)。它们之间的关系见图3.1-1 图3.1-1 JSP相关环境架构图 3.2 系统分析 3.2.1 用户管理系统分析 (1)需求分析 1) 允许用户申请帐号,自由登陆 2) 允许用户查询忘记的密码; (2) 过程分析 图3.2.1.2 用户管理系统过程分析 (3) 建模分析 1) 用户管理对象:用户编号,登陆名,密码; 2) 用户管理模块: 3.2.2 商品活动系统分析 (1)需求分析 1) 允许用户搜索特定商品,并查询详细信息; 2) 允许用户在线订购,支付,查询物流信息; (2)过程分析 图3.2.2.2 商务活动过程分析 (3) 建模分析 商务活动的对象 A. 商品:商品编号,商品名称,商品分类,商品价格,商品介绍; B. 定单:订单编号,订购用户名,邮递地址,订单提交日期订购商品信息; 商务活动模块 3.2.3 管理员活动系统分析 (1) 需求分析 A. 允许管理员通过超户密码自由登陆; B. 允许管理员查看、更改、删除注册用户信息; C. 允许管理员查看、添加、删除库存商品信息; D. 允许管理员查看用户发放的定单信息; (2)过程分析 图3.2.3.2 管理员进行管理基本过程 (3) 建模分析 1) 管理活动对象: A.用户:用户编号,登陆名,密码; B.商品:商品编号,商品名称,商品分类,商品价格,商品介绍; C.定单:订单编号,订购用户名,邮递地址,订单提交日期,订购商品信息; 2) 管理活动模块: 模块名称 模块功能 用户管理模块 查看、更改、删除注册用户信息; 商品管理 查看、添加、删除库存商品信息; 定单管理模块 查看用户发放的定单信息 3.2.4 用户活动流程设计 (1)登陆流程详细设计: A. 用户在浏览器中输入URL访问Go2008首页; B. 若直接进行商务活动,显示错误提示页面; C. 用户在首页直接登陆或进入会员中心首页;登陆进入d,申请帐户进入c,忘记密码进入c; D. 会员中心首页填写相关信息申请帐户,成功返回登陆 图3.3-1 用户商务活动流程之登陆详细设计 (2)商务活动流程详细设计: 进入客户专区首页做如下选择: A.返回首页; B.分类浏览商品; C.直接查询商品; D.查看购物车,若购买商品则进入f; E.注销,结束商务活动; 第四章 系统设计 4.1 电子商务系统的组成 电子商务系统是一个典型的JSP数据库开发应用程序,由前台商品展示及销售、后台管理2部分组成。 4.1.1 前台商品展示及销售 该部分主要包括新品上架、特价商品、销售排行、购物车、会员管理、商品公告及订单查询、商品查询等。 1. 后台管理 该部分主要对商城内的一些基础数据进行有效管理,包括商品管理、会员管理、订单管理、公告管理等。 4.2 系统功能结构图 电子商务系统前台功能结构如图1所示。 图1 系统前台功能结构图 电子商务系统后台功能结构如图2所示。 图2 系统后台功能结构图 4.3 设计目标 本系统在设计时应该满足以下几个目标: (1)采用人机对话的操作方式,界面设计美观友好、信息查询灵活、方便、快捷、准确、数 据存储安全可靠。 (2)全面展示商城内所有商品,并可展示最新商品及特价商品。 (3)为顾客提供一个方便、快捷的商品信息查询功能。 (4)会员可以随时修改自己的会员资料。 (5)实现网上购物。 (6)商品销售排行,以方便顾客了解本商城内的热销商品及帮助企业领导者做出 相应的决策。 4.4 开发运行环境 4.4.1 硬件平台 (1)CPU:P41.8GHz; (2)内存:256MB以上。 4.4.2 软件平台 (1)操作系统:Windows XP; (2)数据库:SQL Server 2000 (3)开发工具包:JDK Version1.4.2; 4.5 数据库设计 4.5.1 tb_superType 商品大分类信息表主要用来保存商品类别中大的类别信息。 4.5.2 商品小分类信息表 商品小分类信息表主要用来保存商品类别中小的类别信息。 4.5.3 tb_rebate 折扣表用来保存顾客在购买商品时的折扣信息。表tb_rebate的结构如表B.3所示。 表B.3 字段名 数据类型 长度 是否主键 描述 grade varchar 20 是 等级 Amount money 8 消费额 表tb_rebate的结构 4.5.4 订单明细表 订单明细表用来保存订单的详细信息。表tb_order_detail的结构如表B.4所示。 表B.4 字段名 数据类型 长度 是否主键 描述 ID bigint 8 是 ID号 orderID bigint 8 与tb_Order表的OrderID字段关联 表tb_order_detail的结构 4.5.5 订单信息主表 订单信息主表用来保存订单的概要信息。表tb_order的结构如表B.5所示。 表B.5 字段名 数据类型 长度 是否主键 描述 OrderID bigint 8 是 订单编号 bnumber smallint 2 品种数 username varchar 15 用户名 Truename varchar 15 真实姓名 表tb_order的结构 4.5.6 会员信息表 会员信息表主要用来存储所注册的会员的信息。表tb_member的结构如表B.6所示。 表B.6 字段名 数据类型 长度 是否主键 描述 ID int 4 是 会员ID userName varchar 20 用户名 tel varchar 20 电话 freeze int 4 是否冻结 表tb_member的结构 4.5.7 管理员信息表 管理员信息表用来保存管理员信息。表tb_manager的结构如表B.7所示。 表B.7 字段名 数据类型 长度 是否主键 描述 ID int 4 是 ID号 manager varchar 30 管理员名称 表tb_manager的结构 4.5.8 商品信息表 商品信息表主要用来保存商品信息。表tb_goods的结构如表B.8所示。 表B.8 字段名 数据类型 长度 是否主键 描述 ID bigint 8 是 商品ID newGoods int 4 是否新品 hit int 4 浏览次数 表tb_goods的结构 4.5.9 公告信息表 公告信息表主要用来保存商城的公告信息。表tb_BBS的结构如表B.9所示。 表B.9 字段名 数据类型 长度 是否主键 描述 ID int 4 是 ID号 title varchar 100 公告标题 content varchar 4000 0 公告内容 表tb_BBS的结构 第五章 系统详细设计与实现 根据系统的需求编写需要的JavaBean。下面将给出Go购电子商城中所需要的JavaBean的编写过程。 5.1 数据库操作的JavaBean的编写 数据库操作的JavaBean是一个公共类,通常包括连接数据库的方法getConnection、执行查询语句的方法executeQuery、执行更新操作的方法executeUpdate、关闭数据库连接的方法close。下面将给出编写Go购电子商城中的数据库操作的JavaBean“connDB”的实现过程。 1.指定JavaBean“connDB”保存的包,并导入所需的类包,并将其保存到“com.wgh.DB”包中,代码如下: package com.wgh.DB; //将该类保存到com.wgh.DB包中 import java.util.*; //导入提供实用方法和数据结构的类包 2.在构造方法connDB中定义该类中所需的变量。通常将方法中常用的变量均放在构造方法中。构造方法connDB的代码如下: public class connDB { public Connection conn = null; //定义一个Connection对象 public ResultSet rs = null; //定义一个ResultSet对象 private static String propFileName = "C:/connDB.properties"; //定义保存properties文件的路径的静态变量 "com.microsoft.jdbc.sqlserver.SQLServerDriver"; //保存驱动类的类名 private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_shop"; private static String dbUser = "sa"; //保存SQL Server登录用户名的变量 3.为了方便程序移植,我将数据库连接所需信息保存到properties文件中。connDB.properties文件的内容如下: =com.microsoft.jdbc.sqlserver.SQLServerDriver DB_CLASS_NAME=com.microsoft.jdbc.sqlserver.SQLServerDriver #DB_URL(要连接数据库的地址)=jdbc(JDBC模式):microsoft(谁提供的):sqlserver(产品)://localhost:1433(SQL SERVER默认端口);DatabaseName=db_database DB_URL=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_shop 定义loadProperty方法读取properties文件中的数据库连接所需信息。读取数据库连接所需信息时,可能发生异常,因此需要捕获这个异常。loadProperty方法的代码如下: private static void loadProperty() { try { prop.load(new FileInputStream(propFileName)); //通过文件输入流对象 dbClassName = prop.getProperty("DB_CLASS_NAME"); //读取驱动类的类 dbUrl = prop.getProperty("DB_URL", "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_shop"); //读取数据库的URL地址 dbUser = prop.getProperty("DB_USER", "sa"); //读取SQL Server登录用 dbPwd = prop.getProperty("DB_PWD", ""); //读取SQL Server登录密码 catch (Exception e) { e.printStackTrace(); 4.创建连接数据库的方法getConnection,该方法返回Connection对象的一个实例。getConnection方法的代码如下: public static Connection getConnection() { Connection conn = null; loadProperty();try { Class.forName(dbClassName).newInstance(); //调用Class的forName方 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); } catch (Exception ee) ee.printStackTrace() } if (conn == null) { System.err.println( "警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:" +dbClassName + "\r\n链接位置:" + dbUrl + "\r\n用户/密码" + dbUser + "/" + dbPwd); 5.创建执行查询语句的方法executeQuery,返回值为ResultSet结果集。executeQuery方法的代码如下: public ResultSet executeQuery(String sql) { try { conn = getConnection(); //调用getConnection()方法构造Connection对象的一个实例connstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql); } catch (SQLException ex) { System.err.println(ex.getMessage());} return rs; 6. 创建执行更新操作的方法executeUpdate,返回值为int型的整数,代表更新的行数。executeQuery方法的代码如下: public int executeUpdate(String sql) { int result = 0; try { conn = getConnection(); //调用getConnection()方法构造Connection对象的一个实例connstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); result = stmt.executeUpdate(sql); //执行更新操作 }catch (SQLException ex) { result = 0; } try {stmt.close(); } catch (SQLException ex1) { }return result; } 7.创建执行更新操作,并返回该操作中自动编号字段的自动编号的方法executeUpdate_id。executeUpdate_id方法的代码如下: public int executeUpdate_id(String sql) { int result = 0; try { conn = getConnection(); //调用getConnection()方法构造Connection对象的一个实例conn stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); result = stmt.executeUpdate(sql); String ID = "select @@IDENTITY as id"; rs = stmt.executeQuery(ID); if (rs.next()) { nt autoID = rs.getInt("id");result = autoID; }} catch (SQLException ex) { result = 0; }return result; } 8.创建关闭数据库连接的方法close。close方法的代码如下: public void close() {try {if (rs != null) {rs.close(); //关闭ResultSet结果集}}catch (Exception e) {e.printStackTrace(System.err); }try {if (stmt != null) {stmt.close();}}catch (Exception e) {e.printStackTrace(System.err); }try {if (conn != null) { conn.close(); //关闭Connection 5.2 网站前台设计 1.在Go购电子商城的首页中,用户不但可以在第1时间内掌握商城推出的特价商品、上架新品、最新公告等,还可以查看销售排行、搜索指定商品、商品分类查询等。 5.3 特价商品模块设计 1.特价商品模块 特价商品模块共有两个入口,一个是网站导航条中的【特价商品】导航按钮,另一个是网站前台的居中位置,分栏列出了商城中特价商品中最新的两条特价商品信息,单击特价商品展区中的“More…”超链接可以进入到特价商品页面,在该页面中将列出商城中的全部特价商品。主要包括商品图片、名称、原价、现价等信息。同时设置了【购买】按钮和【详细信息】按钮,分别用于将商品信息添加至购物车和查看商品详细信息。特价商品模块在网站首页的设计效果如图5所示。 图5 特价商品模块在网站首页的设计效果 (1)查询数据表中的特价商品。特价商品信息同商品基本信息同时保存在商品信息表tb_goods中,以字段sale标识,当sale字段的值为1时,代表该商品为特价商品。在网站首页中查询特价商品的代码如下: <%@ page import="com.wgh.DB.connDB" %> <%connDB conn=new connDB(); //创建并实例化connDB的一个对象 ResultSet rs_sale=conn.executeQuery ("select top 2 ID,GoodsName,price,nowprice,picture from tb_goods where sale=1 order by INTime desc");%> 特价商品页面sale.jsp中查询特价商品的代码如下: <%@ page import="com.wgh.DB.connDB" %> <%connDB conn=new connDB(); ResultSet rs=conn.executeQuery ("select ID,GoodsName,Introduce,price,nowprice,picture from tb_goods where sale=1 order by GoodsName"); (2)制作显示特价商品信息部分。在网站首页中显示特价商品信息采用了分栏技术,也就是应用if语句结合求模运算符实现在一个单元格中同时显示两列数据。关键代码如下: <%int s=1; while (rs_sale.next()){ sale_ID=rs_sale.getInt(1); s_goodsname=rs_sale.getString(2); s_price=rs_sale.getFloat(3); s_nowprice=rs_sale.getFloat(4); s_picture=rs_sale.getString(5); if(s%2==1){ %><%}else{%> <% s++; }%> 5.4 新品上架模块设计 新品上架模块也有两个入口,一个是网站导航条中的【新品上架】导航按钮,另一个是网站前台的居中位置,列出了商城中上架新品中的最新上市的4条商品信息,单击新品上架展区中的“More…”超链接可以进入到新品上架页面,在该页面中将列出商城中的全部上架新品。主要包括商品图片、名称、现价等信息。同时设置了【购买】按钮和【查看详细信息】按钮,分别用于将商品信息添加至购物车和查看商品详细信息。下面只以首页中的新品上架为例进行介绍。新品上架模块在网站首页中的设计效果如图6所示。 图6 新品上架模块在网站首页中的设计效果 新品上架信息同商品基本信息同时保存在商品信息表tb_goods中,以字段newGoods标识,当newGoods字段的值为1时,代表该商品为上架新品。在网站首页中查询新上架商品的代码如下: <%@ page import="com.wgh.DB.connDB" %> <%connDB conn=new connDB(); ResultSet rs_new=conn.executeQuery("select top 4 ID,GoodsName,nowprice,introduce,picture from tb_goods where newGoods=1 order by INTime desc"); %> 5.5 商品分类模块设计 为了方便用户查询所需商品信息,在网站中设置了商品分类显示模块。在网站首页的右侧以树状菜单的形式列出了商品的大、小分类信息,用户单击大类别结点可以显示出该类的所有小类信息,单击小类结点可以进入到分类商品显示页面查看该类别的全部商品信息,在分类商品显示页面中,单击商品名称可以查看相应商品的详细信息。如果用户已经登录,还可以直接将商品信息添加至购物车中。商品分类模块的页面设计效果如图7所示。 图7 商品分类模块的页面设计效果 实现以树状菜单的形式显示商品的大、小分类信息的关键是获取商品的大分类信息,并分别查询出每个大类所对应的小分类信息,再通过
标记和JavaScript自定义函数实现
结点的显示和隐藏,关键代码如下: <%@ page import="com.wgh.DB.connDB" %> <%connDB conn=new connDB(); ResultSet rs_superType=conn.executeQuery("select ID,superType from V_Type group by ID,superType order by superType desc");%> …… //此处省略了部分HTML代码 <%int ID_superType=0; String superType="";int m=1; while(rs_superType.next()){ID_superType=rs_superType.getInt(1); superType=rs_superType.getString(2); String sql="select * from V_Type where ID="+ID_superType; ResultSet rs_subType=conn.executeQuery(sql); String subType="";int subID=0; rs_subType.last();int subType_RC=rs_subType.getRow();rs_subType.first();%> <%if(subType_RC<=0){%>    <%=superType%> <%}else{,OpenRep<%=m%>)">展开 <%=superType%><%} %><%if(subType_RC>0){%>"style="display:none;"><%do{subType=rs_subType.getString(3); subID=rs_subType.getInt(4); %> <% m++; //注意,该条语句一定不能少}while(rs_subType.next());%><%}%> <% }%> 5.6 会员管理模块设计 在前台的会员管理模块中主要包括会员注册、会员登录、会员资料修改3部分。由于会员资料修改同会员注册的实现方法类似,只是调用的SQL语句不同,所以此处只给出会员注册和会员登录进行介绍。 1. 会员注册 会员注册的入口位于网站首页的左侧。用户单击【注册】按钮即可进入到会员注册页面,该页面的设计效果如图8所示。 图8 会员注册页面设计效果 会员注册模块由两个页面组成,一个是用于收集用户输入的注册信息的会员注册页面,另一个用于将会员注册信息保存到数据表中的处理页。 会员注册页面主要由表单元素组成,比较简单。 将会员注册信息保存到数据表中,首先使用JavaBean中的member类保存客户端输入的会员信息,再通过调用memberDaoImpl中的insert方法将会员信息保存到会员信息表中。在保存会员信息时,还需要判断会员名是否存在,必须保证会员名称的惟一性。保存会员信息的完整代码如下: <%@ page import="com.wgh.DB.connDB"%> <%@ page import="com.wgh.dao.MemberDaoImpl" %> //一次性为JavaBean的所有属性赋值 <%connDB conn=new connDB(); request.setCharacterEncoding("gb2312"); //编码转换 String username=member.getUsername(); ResultSet rs=conn.executeQuery("select * from tb_Member where username='"+username+"'"); if (rs.next()){ out.println(""); }else{ int ret=0; MemberDaoImpl ins_member=new MemberDaoImpl(); //创建GoodsDaoImpl对象的实例并实例化该对象 ret=ins_member.insert(member); //执行JavaBean“GoodsDaoImpl”中的方法添加商品信息 2. 会员登录 会员登录用于网站会员登录本网站进行购物或查看订单情况。会员登录入口位于网站首页的左侧,页面运行结果如图4所示。下面给出会员登录页面的设计效果图和会员登录后的会员登录页面的运行结果,分别如图9、图10所示。 图9 会员登录页面的设计效果 图10 会员登录后的会员登录页面的运行结果 当用户在登录窗口中输入用户名和密码后,单击【登录】按钮,系统将对输入的用户名和密码进行验证,如果用户输入的用户名存在并且冻结字段的值不为1,则判断用户输入的密码是否正确,如果密码正确,则重新进入网站首页,显示登录用户的用户名、【修改资料】按钮、【退出登录】按钮,否则提示登录失败。会员登录页面的关键代码如下: <%@ page import="com.wgh.DB.connDB"%> <%@ page import="com.wgh.DB.chStr"%> <%connDB conn=new connDB(); //创建并实例化connDB的一个对象 chStr chStr=new chStr(); //创建并实例化chStr的一个对象 String username=chStr.chStr(request.getParameter("username"));//此处必须进行编码转换,否则输入中文用户名时将出现乱码 try{ResultSet rs=conn.executeQuery("select * from tb_Member where username='"+username+"'andfreeze=0");if(rs.next()){StringPWD=request.getParameter("PWD");if(PWD.equals(rs.getString("password"))){ //判断用户输入的密码是否正确session.setAttribute("username",username); //为session变量username赋值response.sendRedirect("index.jsp"); //将页面重定向到index.jsp页面}else{out.println("