获取项目源文件,技术交流与指导联系Q:1225467431
随着互联网(Internet)的快速发展,建立美食网站成为了客观的需要。某些自己经营的美食商店在美食网站的公共平台进行美食的商品交易是客观发展的必然趋势,而且还有效地提升自己美食商品的销售量,美食网站的发展对自己美食商品店起到积极的推动作用。所以建立一个以Java Web美食网站对美食商品具有很大的帮助,在线美食网站的美食商品销售模式增强自己美食商品实际效益,又方便了美食消费者对美食商品的选择。
在线美食网站分为前台和后台两个主要的主要部分。前台主要用于游客的浏览,用户注册,美食推荐,美食讨论,用户留言等基本的主要功能。后台主要是用于管理员或网站用户对美食信息的查看,后台的主要功能有,用户登录,修改密码,修改自己的个人信息,管理自己的美食商城,管理自己的美食买卖,用户自己的留言板,退出等操作。每一个用户注册,都可以开自己的网店,进行商品交易,与淘宝商品买卖网站类似。可以发布自己的美食进行商品商品的买卖,推荐自己认为好吃的美食,一些商品还可以在讨论区进行讨论。
在线美食网站是采用Jsp+Tomcat6.0+Oracle 10g进行基础知识前期准备,采用Hibernate框架进行设计。JSP简单易学,与Windows操作系统无缝连接、扩展性好的特点,吸引网站的开发者。Oracle 10g具有强大的数据管理功能、安全性管理和作业管理等功能,Oracle既有简单易学的特点,能进行分布式处理和联机分析处理。并支持客户端、服务器的结构。
美食网站可以展现用户自己的美食商品,提高自己的美食商品的销售量,使用Jsp+Tomcat6.0+Oracle10g,并用Hibernate框架进行网站的实现,使每一个用户都可以进行发布自己的美食商品在美食商城中进行买卖,用户可以进行美食推荐、美食讨论等相关操作。
关键词:在线美食;Oracle数据库;JSP。
Abstract
With the rapid development of the Internet (Internet), the establishment of food web site has become the objective need. Some runs his own food stores in the food web platform for the public to food commodity trading is the objective development inevitable trend, but also effectively improve their sales of food products, the development of the food web site for their food goods shop to play a positive role. So to set up a website with Java Web delicacies of food commodities are of great help, online gourmet food commodities sales model to enhance their food actual benefit, and convenient food consumer‘s choice of food commodities.
Food online site is divided into the main part of the foreground and background two major. At the front desk is mainly used for visitors to browse, user registration, food recommendation, gourmet discussion, user messages, etc. The main functions of the basic. Background is mainly used for administrator or users view of food information, the background of the main features, user login, change passwords, modify personal information, manage their food shopping mall and manage your own food business, your own message board, exit and other operations. Each user registration, can open their own shop, commodity trading, similar to taobao website commodity business. Can publish their own food goods buying and selling of commodities, to recommend their delicious food, some goods can also be discussed in the discussion area.
Online food is used Jsp + Tomcat6.0 + Oracle 10 g on the basis of preparation of knowledge, using Hibernate framework to design. JSP easy to learn, with the Windows operating system characteristics of seamless connection, good scalability, attract website developers. Oracle 10 g has a powerful data management, security management and operation management, and other functions, Oracle has both the characteristics of easy to learn, able to distributed processing and online analytical processing. And support structure of the client, the server.
Cate website can show your own food commodities, improve their sales of food products, using Jsp + Tomcat6.0 + Oracle10g, and Hibernate framework for the realization of the website, make every user can release their own food commodities traded in the food store, users can discuss food recommendation, food and other related operations.
Key words: Online food; Oracle Database; JSP.
目录
摘 要 I
Abstract II
1项目概述 1
1.1现系统的概述 1
1.2美食网站组织机构及业务范围 2
1.3美食网站业务流程描述 3
2美食网站需求分析 5
2.1美食网站总体目标 5
2.2美食网站具体目标 5
2.2.1网站前台 5
2.2.2网站后台 6
2.3美食网站系统功能建模 6
2.3.1系统数据流图 6
2.3.2数据字典 10
2.4系统数据模型 15
3美食网站概要设计 23
3.1体系结构设计 23
3.2.1外部接口 24
3.2.2内部接口 24
3.3代码设计 25
3.3.1代码设计原则 25
3.3.2系统所需代码设计 25
3.4数据库设计 26
3.4.1关系模式设计 26
3.4.2数据库物理结构设计 27
3.5输入输出设计 31
3.5.1输入设计 31
3.5.2输出设计 32
3.6运行设计 32
3.6.1环境 32
3.6.2运行控制 33
3.7出错处理设计 33
3.7.1出错输出信息 33
3.7.2出错处理对策 33
3.8安全保密设计 33
3.8.1数据安全性 34
3.8.2登录用户的安全性 34
3.9维护设计 34
4美食网站详细设计 35
4.1详细设计概述 35
4.2公共类设计 35
4.3网站首页设计 35
4.4用户注册模块定义 35
4.5美食推荐模块定义 37
4.6美食讨论模块定义 38
4.7美食添加模块定义 39
4.8美食商城模块定义 40
5美食网站编码 41
5.1开发工具及编程语言概述 41
5.1.1开发工具MyEclipse10 41
5.1.2 Oracle10g数据库管理系统简介 41
5.1.3 JSP简介 42
5.1.4 JAVA语言简介 43
5.2脚本习惯说明 44
5.3程序 44
6测试 45
6.1测试原则及测试方法概述 45
6.2测试项目测试用例 46
6.3软件测试结论 49
6.3.1软件能力 49
6.3.2缺陷和限制 49
6.3.3测试结论 50
结论 51
致谢 52
参考文献 53
附录A中文译文 55
附录B英文原文 60
附录C主要程序清单 66
近年来,我国的美食行业发展较为迅速,我国正迎来一个美食大发展的关键时期,市场潜力巨大,前景非常可观。美食行业必须依据自己条件和环境因素等条件,看清美食市场的发展前景与趋势,选择适当的经营方法,才有可能在激烈的市场竞争中获得成功。在目前,有各种各样美食网站,形形色色的,例如:团购网、饿了么等相关网站,多数都是关于吃的,美食天下、美食杰、下厨房、豆果网、好豆网、贝太厨房美、食博客心食谱、天天美食、家常菜大全、中国菜谱网、39健康饮食、百度糯米、大众点评、POCO美食、饮食男女等都是美食网站,团购网可以在你想吃饭的周围搜索你要吃的食物,搜索商家等。其实美食网站都是进行自我推荐,可以进行团购等相关操作。在美食团购网中有几种形式,第一种是自发性的美食团购,第二种是职业性的美食团购,在目前已经出现了不少不同类型的团购性质的网站和个人,第三种就是销售商自己组织的美食团购,第四种就是通过组建“美食消费者联盟”建立稳定、从团购渠道来创业的“个人特许加盟型美食团购”。四种形式的共同点就是参与者能够在保证正品的情况下让自己的资产获得增值的效果。怎样才能使团购的商品最划算?参加团购前要先做好市场调查,并且要了解自己要买的商品的价格、品牌以及性能,只有心中有数了,才不会被所谓的“团购优惠”弄糊涂。美食网站大多数都是进行团购的,这样才能更好的招揽客户,有利于自己的发展。但是,现阶段,美食推荐、美食讨论与美食商城都是分开的,这就造成了美食推荐、美食讨论不能在一起,所以现阶段美食网站存在弊端。
对于现阶段的美食网站来说,现在有很多关于美食的网站,在那里进行讨论美食,推荐美食,在哪里进行买卖美食商品等相应功能,对美食的发展起到很好的促进作用。例如:美食杰的美食网站做的就很到位,具有美食推荐,推荐自己认为好吃,或者是非常特别的美食商品,不仅促进了用户对美食的了解,而且对于美食商品来说也起一定促进作用。
一个优秀的美食网站对于美食行业发展是一种推动作用,如今,美食消费者对于美食的消费又提出了更高的要求,对于美食商品的安全性和可靠性等方面更加考虑的多一些,美食的优惠度提出了更加高的要求。构建一个公共的美食网站的平台对于所有消费者提供了美食买卖交互平台。
该网站是由网站维护管理员进行负责,对注册用户进行监督,用户发表的内容进行查看,例如查看美食推荐、美食讨论、美食商城的基本美食信息。网站所发布的美食信息可以由维护人员和普通用户进行发布,维护人员发布网站公告,用户进行发布其他的基本信息(美食推荐、美食讨论)。
目前该美食网站组织机构如下图1-1所示。
图1-1目前美食网站组织机构图
Fig1-1 Diagram of The Current Food Site Organization Structure
(1)美食推荐:主要功能,用户进行登陆后,对于自己喜欢的美食进行推荐,推荐给其他人的功能,大家用户都可以进行浏览与学习推荐的美食。
(2)美食讨论:主要功能,对于用户登陆后,用户可以进行对美食进行讨论,对于不会做或者什么样的美食好吃的进行讨论,给出自己的评价。
(3)美食商城:主要功能,用户登陆后可以进行浏览查看美食商城中的商品,进行买卖美食商品、评价自己已买的美食商品,供其他人参考。
(4)网站公告:维护人员对网站进行网站公告的发布,对于重要的公共信息进行发布,緻用户了解最新的网站当前的状态。
业务流程图就是用一些特定的圆形、矩形等符号与他们之间连线来表示某个具体业务处理过程。通过业务流程图可以准确地理解数据的处理过程。业务流程图符号说明如下:
表1-1业务流程图符号
Tab 1-1 The symbols of operational flow chart
符号 |
名称 |
说明 |
|
实体 |
数据的源点/终点 |
|
输入/输出 |
表示输入或输出的报表 |
|
处理 |
能改变数据值或数据位置的加工或部件 |
|
数据流 |
用来连接其他符号,指明数据流动方向 |
|
存储 |
表示任何种类的联机存储 |
用户可以进行以游客的身份进行浏览,查看普通用户发布的美食,例如推荐美食、讨论美食以及美食商城中的美食商品,普通用户能够进行发布基本美食网站的基本必要的信息,例如:推荐自己喜欢的美食,讨论美食的做法以及发布理由,浏览美食商城选购自己的美食,用户的个人空间,查看与修改自己的基本资料,增加与管理自己美食商城的商品,查看留言。维护人员则只能查看所有的注册用户(不能查看密码)的基本信息,查看讨论的美食、推荐的美食,查看自己的留言、发布网站公告。
具体的美食网站业务流程图如图1-2所示。
图1-2美食网站系统业务流程图
Fig1-2 Food Site System Service Flow Chart
该基于Java Web的美食网站是针对所有该网站用户进行与美食商品有关的第三方管理网站,网站主要是负责提供给用户一个美食商品信息交流的平台,它提供美食买卖管理及美食消费者的推荐美食、讨论美食、购买美食。根据美食网站的特点,分为前台和后台两个部分。前台主要实现的功能是用户可以通过互联网访问本网站浏览基本信息。例如:用户推荐的美食信息可以进行浏览等。后台主要实现的功能是网站内部管理员或个人用户通过登录后台来管理和发布相关信息[1]。
基于Java Web 的美食网站所具备的功能已经越来越受到美食行业及相关美食人士的关注与重视。随着美食行业在我国的蓬勃发展以及美食市场的激烈竞争,现代美食信息逐步从定性转变为更精确的定量要求,这就需要美食网站提供大量准确、及时的信息数据,以帮助吃货们更多的了解美食动态信息,使之能够更及时地调整美食行业的发展方向,以适应当前市场的变化,提高美食的效益。美食网站以它全面的、周到的、精准信息等服务,使它逐渐成为美食行业发展前进的平台[2]。
此次的美食网站平台主要是针对中小型美食网站设计的。该美食网站主要实现如下目标:
(1)用户操作简单方便,界面简洁美观大方。
(2)网站整体结构和操作流程合理顺畅,实现人性化设计。
(3)注册功能。提供一种注册途径:个人用户注册。
(4)具备美食推荐、美食讨论、美食商城、美食搜索等功能。
(5)查看网站用户信息。
(6)系统最大限度地实现易安装性、易维护性和易操作性。
(7)系统能稳定、安全可靠进行运行。
网站前台主要实现的功能为浏览信息、美食推荐、美食讨论、注册、登录、留言功能。
浏览信息:游客或普通用户通过互联网访问网站可以浏览到推荐的美食、讨论的美食、美食商城的美食、搜索美食。
美食推荐:美食网站提供推荐美食功能,用户可以进行登录在进行推荐美食,游客只能浏览推荐的美食。
美食讨论:用户登陆后可以进行发布美食讨论,以何种理由进行发布游客只能浏览他人发布的信息。
注册功能:如果需要进行注册,则游客进行注册,成为普通用户。
登录功能:游客可以进行登录,查看自己的个人空间,更改自己的个人信息。
留言功能:普通用户可以向普通用户留言,也可以对网站进行留言以提高我们网站的服务。
网站后台主要实现的功能为美食管理、修改资料、维护人员维护,美食商品的管理等。
美食管理:用户可以登录进行美食管理,添加新美食,维护美食等相关操作。
修改资料:普通用户注册及登陆后,可以进行修改自己的必要的信息,已进行更好的使用网站,这样就可以更好的使自己的美食得到发展。
维护人员维护:维护人员进行登录维护后台,进行查看所有人的基本信息。但不能更改,所有美食推荐、美食讨论等相关信息。
美食商品的管理:用户进行登陆后,进行管理自己的美食商品,添加新的商品,删除不买的商品,更新现有商品信息。
系统功能建模所采用的工具是数据流图、数据字典,用于表达网站系统内部数据运动以及对数据的描述与定义。
数据流图英文缩写DFD(Data Flow Diagram)是结构化分析方法中使用的有效的工具,它以图形方式表示数据信息在系统中流动与被处理的过程动态,因为它反映系统必须完成的逻辑基本功能,所以它也是一种功能模型。在结构化开发方法中,数据流图是需求分析阶段生成的。与此同时数据流图也是一种图形化方法,它从数据信息传值与处理角度来看,以图形方法进行表述系统的逻辑功能、数据在系统内部的逻辑流向、变换过程,是结构化系统分析方法的主要表达工具,也是用于表示软件模型的一种图示方法。
数据流图是由实体部分、处理部分、数据存储部分与数据流等四部分组成的,有两种典型结构,一是变换型的结构,它所描述的工作可表示为输入、主处理和输出,呈线性的状态。另一种是事务型的结构,这种数据流图呈现平行的束状,即一束数据流平行流入的数据流或流出的数据流,可能同时有几个事务需要处理,每一部分都有其基本的符号,本文中符号的对应关系见表2-1 。
表2-1 数据流程图符号
Tab 2-1 Data flow chart symbol
图形符号 |
名称 |
说明 |
|
|
外部实体 |
记述除系统之外的数据提供或数据获得的组织机构或个人,在方框内部填入实体名称。
|
|
|
处理 |
记述某种业务的手工或计算机处理,其中,PM区记述处理标号,C区记述处理名称。
|
|
|
数据存储 |
记述与处理有关的数据存储,DN区记述存储的标号,S区记述存储数据的名称。
|
|
F |
数据流 |
记述数据流的流动方向,FM记述数据流的名称。 |
图2-1美食网站系统顶层数据流图
Fig2-1 Food Site System top level data flow diagrams
系统顶层数据流图:主要描述了网站的用户与网站的维护人员对网站的进行操作,用户可以对该网站进行注册或修改资料的用户信息,有关美食的信息、对网站进行留言以提高网站。
图2-2用户管理的一级细化数据流图
Fig2-2 User management in first level refining data flow diagram
用户管理一级细化数据流图:用户进行注册或注册后进行修改资料的数据流图。
图2-3用户操作的二级细化数据流图
Fig2-3 User operating in second level refining data flow diagram
用户操作二级细化数据流图:网站用户登录后,进行美食的基本操作,如美食推荐、美食商城购买商品、发布美食讨论的操作。
图2-4用户留言的一级细化数据流图
Fig2-4 User Comments in first level refining data flow diagram
用户留言一级细化数据流图:用户进行的登录后,用户对网站进行留言操作。
图2-5维护人员的一级细化数据流图
Fig2-5 Maintenance personnel in first level refining data flow diagram
维护人员一级细化数据流图:维护人员登陆后,对该美食网站进行发布公告操作。
图2-6用户留言的一级细化数据流图
Fig2-6 User Comments information in first level refining data flow diagram
用户留言一级细化数据流图:用户登陆后,浏览该网站的其他用户时,对其他用户进行留言操作。
图2-7用户美食讨论的二级细化数据流图
Fig2-7 Users discuss food in second level refining data flow diagram
用户美食讨论二级细化数据流图:用户登陆后,浏览美食讨论,发布自己的美食讨论,当其他人登录并浏览你发布的美食讨论的主题,对该主题进行评论,之后该用户可以进行回复评论,使之形成像“QQ空间”一样的论坛。
数据字典(Data dictionary)是指对数据项、数据流、数据存储、处理过程、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出比较详细的解释。
主动数据字典是一种用户可以访问,也是记录数据库与应用程序源数据地目录。数据字典是指在对数据库或应用程序结构进行修改时,其内容可以根据DBMS自动更新数据字典。被动数据字典是指修改时必须使用手工更新其内容的数据字典。数据字典重要的作用是作为分析阶段所使用的必要工具。任何字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个元素加以定义与说明。换句话说,数据流图上所有的元素的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户的通信[3]。
(1)数据项
名字: |
用户 |
别名: |
UserName |
描述: |
用来表示用户的唯一标识 |
数据类型: |
varchar |
长度: |
50 |
名字: |
密码 |
别名: |
UserPass |
描述: |
登录密码 |
数据类型: |
varchar |
长度: |
50 |
(2)数据存储
名字: |
个人用户信息表 |
描述: |
用户基本个人信息 |
编号: |
D1 |
组成: |
用户编号、用户名、密码、电话、QQ号等。 |
名字: |
美食推荐信息表 |
描述: |
用户推荐的美食的基本信息 |
编号: |
D2 |
组成: |
美食名、美食照片、推荐理由等。 |
名字: |
美食商城信息表 |
描述: |
美食商城的商品的基本信息 |
编号: |
D3 |
组成: |
美食名,数量,单价,剩余数量等。 |
名字: |
美食讨论信息表 |
描述: |
美食讨论的基本信息 |
编号: |
D4 |
组成: |
美食名、讨论理由、照片、所持有发布者等。 |
名字: |
留言信息表 |
描述: |
普通用户对网站进行留言的基本信息 |
编号: |
D5 |
组成: |
留言编号,留言人,留言内容等。 |
名字: |
公告信息表 |
描述: |
网站公告基本信息 |
编号: |
D6 |
组成: |
网站公告的基本信息等。 |
名字: |
留言信息表 |
描述: |
用户对用户留言的基本信息 |
编号: |
D7 |
组成: |
留言编号,留言内容、留言人等。 |
名字: |
评论信息表 |
描述: |
对美食讨论的发布内容进行评论的基本信息 |
编号: |
D8 |
组成: |
评论内容,评论编号。 |
名字: |
评论回复信息表 |
描述: |
对美食讨论的发布内容进行评论的基本信息的回复 |
编号: |
D9 |
组成: |
评论内容,评论编号,回复编号。 |
(3)数据流
名字: |
个人用户信息 |
描述: |
网站用户基本信息 |
编号: |
F1 |
组成: |
用户编号、用户名、密码、电话、QQ号等。 |
名字: |
美食推荐信息 |
描述: |
用户对美食推荐的基本信息 |
编号: |
F2 |
组成: |
美食编号、美食名、推荐理由、美食照片等。 |
名字: |
美食商品信息 |
描述: |
网站用户对自己美食商城的基本信息 |
编号: |
F3 |
组成: |
美食编号、美食名,数量、单价等。 |
名字: |
美食讨论信息信息 |
描述: |
网站用户对美食进行讨论的基本信息 |
编号: |
F4 |
组成: |
讨论编号,美食名、讨论理由等。 |
名字: |
留言信息 |
描述: |
网站用户对其他用户的留言基本信息 |
编号: |
F5 |
组成: |
留言编号、留言内容、留言人,所属人等。 |
名字: |
网站公告信息 |
描述: |
维护人员网站发布的基本信息 |
编号: |
F6 |
组成: |
公告编号、公告内容等。 |
名字: |
留言信息信息 |
描述: |
网站用户对网站的基本留言的基本信息 |
编号: |
F7 |
组成: |
留言编号、留言姓名等等。 |
名字: |
美食讨论信息信息 |
描述: |
用户人员查看添加美食讨论 |
编号: |
F8 |
组成: |
美食讨论编号、讨论内容等。 |
名字: |
评论讨论美食信息信息 |
描述: |
网站用户对于美食讨论的评论 |
编号: |
F9 |
组成: |
评论内容,评论人等。 |
名字: |
回复评论信息信息 |
描述: |
网站用户对美食评论的内容回复的信息。 |
编号: |
F10 |
组成: |
回复编号,回复内容。 |
(4)数据处理
名字: |
用户管理 |
描述: |
管理用户信息 |
编号: |
P1 |
连接数据流: |
用户信息 |
名字: |
美食推荐 |
描述: |
美食的推荐 |
编号: |
P2 |
连接数据流: |
美食推荐信息 |
名字: |
美食商城 |
描述: |
美食商城的商品管理 |
编号: |
P3 |
连接数据流: |
美食商品信息 |
名字: |
美食讨论 |
描述: |
用户对美食进行讨论 |
编号: |
P4 |
连接数据流: |
美食讨论信息信息 |
名字: |
用户留言 |
描述: |
用户对其他用户进行留言 |
编号: |
P5 |
连接数据流: |
留言信息 |
名字: |
网站公告管理 |
描述: |
维护人员进行发布公告 |
编号: |
P6 |
连接数据流: |
网站公告信息 |
名字: |
留言 |
描述: |
用户对维护人员进行留言 |
编号: |
P7 |
连接数据流: |
留言信息信息 |
名字: |
美食讨论 |
描述: |
用户对美食发布的讨论 |
编号: |
P8 |
连接数据流: |
美食讨论信息信息 |
名字: |
评论 |
描述: |
对于特定的美食讨论的评论 |
编号: |
P9 |
连接数据流: |
评论讨论美食信息信息 |
名字: |
回复 |
描述: |
对于特定的美食评论进行的回复 |
编号: |
P10 |
连接数据流: |
查看留言信息信息 |
E-R图又表示为实体联系图(Entity Relationship Diagram),它提供了表示实体类型、属性和联系的基本方法,也是描述现实世界概念结构模型的有效方式。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型[4]。
通过对需求的分析、流程的设计以及对系统功能结构的确定,规划出系统中使用的数据库所需的十四大实体对象,分别为用户信息实体、商品信息实体、买卖信息实体、推荐信息实体、种类信息实体、讨论信息实体、留言信息实体、评价信息实体、维护信息实体、用户留言实体、回复信息实体、回复表2信息实体、讨论回复表信息实体、讨论回复2表信息实体。
表2-2 E-R图符号约定
Tab2-2 E-R chart mark agreement
符号含义 |
符号 |
说明 |
实体 |
|
表示实体集 |
属性 |
|
表示属性 |
联系 |
|
表示联系集 |
线段 |
|
将实体连接到属性或联系集 |
图2-12用户信息实体E-R图
Fig2-12 User information entity E-R diagram
用户实体:用户进行注册后,进行存储用户基本信息的数据库中的表,它涵盖了用户所有的信息,其中重要的有用户名:用户登录的唯一标示、密码:用户登录凭证、QQ号:用来美食商城中的联系商家。
图2-13商品信息实体E-R图
Fig2-13 Commodity information entity E-R diagram
商品实体:用户进行登陆后,管理自己的美食商品,这时就要用到该表,用来存储用户发布的美食的商品,之后在美食商城中展示用户自己的美食商品,进行销售者与购买者的美食买卖。
图2-14买卖信息实体E-R图
Fig2-14 Business information entity E-R diagram
买卖实体:用户登录后,进行美食商品买卖后,购买记录存储的表,这个表是实现判断是否发货、是否收货的至关重要的一个数据库表。
图2-15推荐信息实体E-R图
Fig2-15 Recommend information entity E-R diagram
推荐实体:用户登陆后(这是一个前提),进行美食推荐的数据库存储表,照片存储的是照片的名字,便于设计数据库的表结构,所有用户推荐美食的存储的地方。
图2-16种类信息实体E-R图
Fig2-16 Kind of information entity E-R diagram
种类实体:用来记录美食的菜系,记录美食推荐、美食讨论的美食的菜系。
图2-17讨论信息实体E-R图
Fig2-17 Discuss information entity E-R diagram
讨论实体:用于用户的对美食讨论的存储的数据库中的表,所有用户讨论的美食都会存储在这张表中,记录用户讨论的美食的基本信息。
图2-18留言信息实体E-R图
Fig2-18 Leave a messageinformation entity E-R diagram
留言实体:这是所用用户对本网站留言的存储的数据库表。
图2-19评价信息实体E-R图
Fig2-19 Evaluation information entity E-R diagram
评价实体:用户购买美食商品后,对自己美食购买的美食商品进行评价时,就会用到评价表,用来记录所有用户所有商品的美食评价。
图2-20维护信息实体E-R图
Fig2-20 Maintenance Information entity E-R diagram
维护实体:用来存储维护人员的用户名和登录密码等。
图2-21用户留言信息实体E-R图
Fig2-21 User Comments information entity E-R diagram
用户留言表实体:用来存储所有用户对其用户的留言信息。
图2-22回复信息实体E-R图
Fig2-22 Reply message entity E - R diagram
回复表:用来存储回复用户留言表留言所对应的信息,所有用户都存储在一个表中。
图2-23回复表2信息E-R图
Fig2-23 Table 2 Information Reply E-R diagram
回复表2实体:用于对回复表所对应的用户回复的留言,这个表实现用户回复留言后,又可以对留言用户进行回复留言。
图2-24讨论回复信息E-R图
Fig2-24 Discussion reply message E-R diagram
讨论回复实体:对美食讨论的基本信息进行评论,所有用户所发表的基本评论都存在这个表中。
图2-25讨论回复2 信息E-R图
Fig2-25 Discussion reply 2 Information E-R diagram
讨论回复表2实体:对美食讨论评价进行回复的表,用这个数据库的表实现再次恢复对美食讨论的评价,实现美食讨论论坛。
图2-26系统综合E-R图
Fig2-26 E-R diagram integrated system
系统综合E-R图:这个图展现了所有实体之间的关系。
表2-3实体及其属性表
实体名称 |
属性 |
用户 |
编号,用户,密码,姓名,昵称,性别,年龄,地址,照片,电话,备注,QQ号等。 |
商品表 |
编号,商品表,照片,信息,单价,数量,所有者等。 |
买卖表 |
编号,买者编号,商品编号,卖者编号,是否发货,是否收货,购买数量,是否付钱,备注等。 |
推荐表 |
编号,美食名称,内容,再要,照片,所属用户,种类等。 |
种类 |
编号,种类等。 |
讨论表 |
编号,美食名,照片,内容,种类,所属用户等。 |
留言表 |
编号,内容,所属用户等。 |
评价表 |
编号,用户1,用户2,内容,上一个编号,用户名等。 |
维护表 |
编号,用户名,密码等。 |
用户留言表 |
编号,内容,用户1,用户2,上一条编号,用户名等。 |
回复表 |
编号,内容,所属用户,所属留言等。 |
回复表2 |
编号,内容,所属用户,所属留言表1等。 |
讨论回复表 |
编号,内容,所属用户,所属讨论,种类等。 |
讨论回复表2 |
编号,用户1,用户2,内容,所属讨论回复表 |
Tab2-3 Entity and property sheet
总体设计即系统的物理设计,它包括:系统的结构设计、代码设计、数据库设计、以及软硬件配置等内容[5]。
根据美食网站的特点,可以将其分为前台和后台两个部分设计。
前台主要实现的功能为美食推荐、美食讨论、美食商城、网站留言、发布信息、搜索信息。其中,发布信息包括发布美食信息,它包括发布美食讨论信息、美食推荐信息发布。
图3-1美食网站前台系统功能结构图
Fig3-1 The Front Desk Food Site System Function Structure Drawing
后台主要实现的功能为用户个人操作与维护人员操作。其中用户个人操作包括查看资料、修改个人信息、查看留言、管理买卖、管理美食;维护人员操作包括查看美食讨论、查看美食推荐、查看用户留言、发布网站公告等操作。
图3-2美食网站后台系统功能结构图
Fig3-2 The Background Food Site System Function Structure
(1)用户界面
用户界面部分,为了统一用户界面和样式,在编程过程中将导航、登录信息等编写在模板页中是非常方便的一种方式。在添加新项中选择Web窗体并选择模板页,其主要功能不变而其他功能将在在占位符中编写,这样就不用在反复的编写主要功能而且还节省了开发时间。在Web窗体中添加Div元素,用于页面布局的设计,用Hibernate框架进行后台处理,用Div实现网站页面的布局,对网站的页面进行有效地展示给用户们[6]。
(2)软件接口
使用Hibernate的映射文件对数据库的连接和访问操作,对数据库进行增、删、改、查等操作[7]。
内部接口通过Hibernate框架的对数据库进行映射以来进行访问数据库,用Session与事务的管理方法来实现对数据库的查询、删除、添加和修改的基本数据库事务。
代码是计算机与人都很容易理解的计算机标志(或计算机语言),能够实现人与计算机的交流。代码也叫信息编码,它是作为事物(实体)惟一标识的、一组有序字符组合。它尽可能地方便计算机与人识别、处理。而代码设计是处理对象的代号或表示符号,其主要目的是方便计算机排序、检索、查找等处理。代码设计的关键是方便用户,并且满足业务要求。代码设计要考虑编码的标准化、易于修改、结构简洁,还要考虑代码值的是唯一性[8]。
综上所述代码设计的原则如下:
(1)唯一性:是区别美食网站系统中每个实体或属性的惟一标志。
(2)简单性:尽量压缩代码长度,降低出错发生。
(3)易识别性:为便于记忆、减少出错,代码应当逻辑性强,表意明确的特点。
(4)可扩充性:不需要变动原代码体系,可直接追加新代码,以适应系统的可扩充性。
(5)合理性:必须在逻辑上满足应用需求,在结构上与处理方法相一致。
(6)规范性:尽可能采用现有的国标、部标编码,结构统一。
自增类型代码
自增类型代码由0-9999位数字字符组成,用来记录用户、商品表、买卖表、讨论美食表,推荐美食表、留言表、用户留言表等相关表信息的个数,它们在数据库中以ID为主要关键字,在数据库中已设为主键,具有可避免重复性。格式如下:
X
自增类型编号
(1)维护人员信息,包括数据项:维护人员编号、用户名、密码。
(2)美食商品信息,包括数据项:美食编号、美食名称、美食照片、简介、单价、数量、所属用户等。
(3)买卖美食信息,包括数据项:买卖编号、买用户编号、美食编号、卖用户编号、是否发货,是否收货,购买数量、是否付钱,备注等。
(4)讨论美食信息,包括数据项:讨论美食编号、美食名称、美食照片、发布理由、所属种类、所属用户等。
(5)推荐美食信息,包括数据项:推荐美食编号、美食名称、美食内容、美食再要、美食照片、所属用户、所属种类。
(6)用户信息表,包括数据项:用户编号、用户名、密码、用户姓名、用户昵称、性别、年龄、住址、照片、电话、备注、QQ号。
(7)美食讨论回复信息表,包括数据项:回复编号、回复内容、所属用户、所属种类、所属讨论话题。
(8)对美食讨论回复信息表的回复表,包括数据项:回复编号、回复用户、回复内容、所属用户、所属回复信息表,所属用户的用户名。
(9)网站留言信息表,包括数据项:留言编号、内容、所属用户等。
(10)美食种类信息表,包括数据项:种类编号、美食种类等。
(11)商品评价信息表,包括数据项:评价编号,评价用户,被评价用户,评价内容,评价所属编号、所属用户的用户名。
(12)用户留言信息表,包括数据项:留言编号、留言内容、所属用户等。
(13)对用户留言信息表的回复表,包括数据项:留言编号、内容、所属用户、所属留言等。
(14)回复表的回复信息表,包括数据项:回复编号,内容,所属用户,所属上一条留言等。
表3-1用户信息表
Tab3-1 User information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
UUID |
Number |
5 |
|
用户编号 |
USERNAME |
Varchar2 |
50 |
|
用户名 |
UPASSWORD |
Varchar2 |
50 |
|
密码 |
UNAME |
Varchar2 |
15 |
|
姓名 |
UNICKNAME |
Varchar2 |
50 |
|
昵称 |
USEX |
Varchar2 |
5 |
|
性别 |
UAGE |
Number |
5 |
|
年龄 |
UADDRESS |
Varchar2 |
200 |
|
地址 |
UPHONE |
Varchar2 |
20 |
|
联系电话 |
UPHOTO |
Varchar2 |
200 |
|
照片 |
UREMARK |
Varchar2 |
400 |
|
备注 |
|
Varchar2 |
30 |
|
QQ号 |
表3-2推荐美食信息表
Tab3-2 Recommended dishes information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
TJFTID |
Number |
5 |
|
推荐编号 |
FNAME |
Varchar2 |
20 |
|
美食名 |
TEXT |
Varchar2 |
50 |
|
推荐理由 |
ZAIYAO |
Varchar2 |
50 |
|
再要 |
PHOTO |
varchar |
50 |
|
美食照片 |
UUID |
Number |
5 |
|
用户编号 |
SID |
Number |
5 |
|
种类编号 |
表3-3种类信息表
Tab3-3 Species information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
SID |
Number |
5 |
|
种类编号 |
SNAME |
Varchar2 |
15 |
|
种类名称 |
表3-4留言信息表
Tab3-4 Leave a message information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
NID |
Number |
5 |
|
留言编号 |
TEXT |
Varchar2 |
2000 |
|
留言内容 |
UUID |
Number |
5 |
|
用户编号 |
表3-5讨论美食信息表
Tab3-5 Discussion cuisine information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
DISFID |
Number |
5 |
|
讨论编号 |
FNAME |
Varchar2 |
20 |
|
美食名称 |
FPHOTO |
Varchar2 |
50 |
|
美食照片 |
TEXT |
Varchar2 |
2000 |
|
推荐信息 |
SID |
Number |
5 |
|
种类编号 |
UUID |
Number |
5 |
|
用户编号 |
表3-6维护信息表
Tab3-6 Maintain information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
ID |
Number |
5 |
|
自动编号 |
ANAME |
Varchar2 |
15 |
|
维护名 |
APASSWORD |
Varchar2 |
15 |
|
维护密码 |
表3-7商品信息表
Tab3-7 Commodity information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
BUYID |
Number |
5 |
|
美食编号 |
FNAME |
Varchar2 |
20 |
|
美食姓名 |
FPHOTO |
Varchar2 |
50 |
|
美食照片 |
TEXT |
Varchar2 |
600 |
|
美食信息 |
UNITPRICE |
Number |
5 |
|
单价 |
FCOUNT |
Number |
5 |
|
剩余数量 |
UUID |
Number |
5 |
|
所属用户 |
表3-8买卖信息表
Tab3-8 Trading Information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
FOODID |
Number |
5 |
|
买卖编号 |
UUID1 |
Number |
5 |
|
买用户编号 |
BUYID |
Number |
5 |
|
商品编号 |
UUID2 |
Number |
5 |
|
卖用户编号 |
PANDUAN1 |
Number |
5 |
|
是否发货 |
PANDUAN2 |
Number |
5 |
|
是否收货 |
BUYCOUNT |
Number |
5 |
|
购买数量 |
FUQIAN |
Number |
5 |
|
是否付钱 |
BEIZHU |
Varchar2 |
20 |
|
备注 |
表3-9用户留言信息表
Tab3-9 User Comments information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
REID |
Number |
5 |
|
编号 |
TEXT |
Varchar2 |
2000 |
|
内容 |
UUID1 |
Number |
5 |
|
用户1 |
UUID2 |
Number |
5 |
|
用户2 |
NN |
Number |
5 |
|
上一条编号 |
USERNAME |
Varchar2 |
20 |
|
用户名 |
表3-10回复信息表
Tab3-10 Reply information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
FID |
Number |
5 |
|
车源编号 |
TEXT |
Varchar2 |
2000 |
|
发布人 |
UUID |
Number |
5 |
|
出发地 |
NID |
Number |
5 |
|
审核状态 |
表3-11回复2信息表
Tab3-11 Reply 2 information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
KID |
Number |
5 |
|
编号 |
TEXT |
Varchar |
2000 |
|
用户1 |
UUID |
Number |
5 |
|
用户2 |
FID |
Number |
5 |
|
用户名 |
表3-12讨论回复信息表
Tab3-12 Discussion reply information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
TID |
Number |
5 |
|
编号 |
TEXT |
Varchar |
2000 |
|
内容 |
UUID |
Number |
5 |
|
所属用户 |
SID |
Number |
5 |
|
种类 |
DISFID |
Number |
5 |
|
所属讨论 |
表3-13讨论回复2信息表
Tab3-13 Discussion reply 2 information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
HID |
Number |
5 |
|
编号 |
UID1 |
Number |
5 |
|
用户1 |
TEXT |
Varchar |
2000 |
|
内容 |
UID2 |
Number |
5 |
|
用户名2 |
TID |
Number |
5 |
|
所属讨论回复表 |
USERNAME |
Varchar2 |
100 |
|
用户名 |
表3-14评价信息表
Tab3-14 Evaluation information table
字段名称 |
数据类型 |
字段大小 |
允许空 |
说明 |
PJID |
Number |
5 |
|
编号 |
UUID1 |
Number |
5 |
|
用户1 |
UUID2 |
Number |
5 |
|
用户2 |
TEXT |
Varchar2 |
2000 |
|
内容 |
NN |
Number |
5 |
|
上一个编号 |
USERNAME |
Varchar2 |
20 |
|
用户名 |
表3-15输入设计
Tab3-15 Input design
输入名称:用户 |
输入设备和介质:键盘 |
输入源:任意主机 |
输入时间和频率:需要时输入 |
输入信息量: |
共享范围:本系统使用 |
表3-16美食推荐信息输入格式及内容
Tab3-16 Food Recommended information input from and content
数据项名称 |
类型 |
实际长度 |
备注 |
美食名称 |
C |
20 |
|
内容 |
C |
50 |
|
再要 |
C |
50 |
|
照片 |
C |
50 |
|
种类 |
N |
5 |
列表选择输入 |
表3-17美食讨论信息输入格式及内容
Tab3-17 Gourmet discussion information input from and content
数据项名称 |
类型 |
实际长度 |
备注 |
美食名 |
C |
20 |
|
照片 |
C |
50 |
|
内容 |
C |
2000 |
|
种类 |
N |
5 |
列表选择输入 |
表3-18美食商品信息输入格式及内容
Tab3-18 Food commodities information input from and content
数据项名称 |
类型 |
实际长度 |
备注 |
商品名 |
C |
20 |
|
照片 |
C |
20 |
|
信息 |
C |
600 |
列表选择输入 |
单价 |
N |
5 |
|
数量 |
N |
5 |
|
所有者 |
N |
5 |
|
此输出设计为查询输出设计,以仓储信息为例,如下表:
表3-19输出设计
Tab3-19 output design
输出名称:美食信息 |
输出设备和介质:计算机 |
输出类型:浏览输出 |
输出步骤:浏览或输入关键字搜索 |
表3-20输出格式和内容
Tab3-20 The output format and content
美食照片 |
推荐人: 菜名: 菜系: 摘要: 详细信息: |
(1)网站开发环境
网站开发环境:MyEclipse10集成开发环境。
网站开发语言:JSP+Java。
网站后台数据库:Oracle 10g。
开发环境运行平台:Windows7/Windows XP。
(2)服务器端
操作系统:Windows7。
Web服务器:Tomcat 6.0。
数据库服务器:Oracle 10g。
浏览器:Google Chrome。
(3)客户端
浏览器:Google Chrome。
分辨率:最佳效果1024*768像素。
美食网站系统的运行控制将按照用户注册、美食添加、美食推荐、美食讨论、美食商城的美食的美食买卖这五大模块之间的联系来实现运行。在网站发布任何关于美食信息时,游客需要注册成为该美食网站的普通用户,进行登录后才可以使用该美食网站的所有功能,本网站的编写框架采用Hibernate框架进行访问数据库,对用户注册,美食推荐、美食讨论等相关信息的发布信息,访问数据库,对数据库进行操作等访问机制[9]。
在用户或管理员的操作的过程中也许会有存在的未知问题发生,例如在填写注册信息时,在用户注册页面的Tabel表格中添加验证的Java代码元素中的具体值是否符合相关要求来验证注册用户是否输入了用户名、密码、电子邮件。编写Java类代码来进行用来验证注册用户两次输入密码是否一致。用户名重复,密码不一致,是否为邮箱或手机号的检验,进行注册都可以进行检验是否符合该美食网站的注册标准[10]。
在用户添加美食讨论信息时,有可能忘记选择美食的种类,所以有提示,如果没有选,提示进行选择美食的种类,,美食照片也是,需要同样的方法进行验证。
随着互联网的发展,网络已经成为了人们生活中一个重要不可或缺的部分,同时网络也对各行各业在经济和影响力上起到了巨大的推作用,与此同时,网络的安全性方面也引起了人们关注的问题,它直接影响着网络在当代社会中的发展前景。为了防止未被授权用户对网络资源的肆意破坏和窃取企业商业机密恶意行为所导致的混乱。因此在系统的实施过程中,才要针对系统安全性问题进行设计[11]。
要保证数据库中的数据具有安全性,就必须要对数据库操作的安全性进行规定。数据库的安全性定义是在信息系统的不同层次保护数据库,防止未授权的数据访问,避免数据泄漏、不合法的修改对数据产生的破坏。因此,要时时刻刻做好对数据库的备份基本工作,防止数据库由于使用不当而造成意想不到的破坏[12]。
在网站已经注册的网站用户,登录名和密码是用户进行登录的惟一凭证,在填写登录名和密码时在“登录”按钮的时用访问数据库进行判断用户数据库中是否含有该用户信息,进行判断,是否可以经行登录的基本操作,都写在Jsp页面中,对登录信息进行校验[14]。
维护方面主要对服务器上的数据库进行维护,可以使用Oracle10g自带数据库维护与数据恢复功能,还应定期对数据库进行备份,以避免数据流失和病毒侵害,时刻维护数据库内数据的一致性和安全性[15]。
详细设计也叫程序设计,是对美食网站系统的每一模块的具体而又详细定义的分析和说明。根据具体要求能精确地描述出各模块的名称与功能,从而在编码阶段时就可以把描述功能的地方换成具体的程序代码来编写程序。
该美食网站一共有五个模块,分别是:用户注册模块、美食推荐模块、美食讨论模块、美食商品添加、美食商城模块等,对这五个模块进行分别进行设计。
美食网站用MyEclipse10进行编写,也就是说,用Jsp页面与Java语言进行编写,分别进行编写。
数据库操作包用来完成数据库的连接操作以及数据库的查询、添加、删除和修改操作。将这几种操作类编写到一个公共包里,可以减少重复代码编写,有利于代码的维护。在整个项目中设计Com.zlg.action包,定义一些是否为手机号或邮箱的检验;设计Com.zlg.dao定义一些数据库每一个数据表的增、删、改、查;设计Com.zlg.bean定义数据库与基本Bean类的映射文件。
对美食天下网站的网站首页,最基本的要求就是简洁明了,把网站的主要功能都显示出来,使用户很轻松的就能看见自己所需要的美食信息,更能让用户方便使用。在美食天下的网站首页中,用户不但可以在第一时间浏览到最新的美食推荐与美食讨论的基本最新的美食信息,还可以实现在网站中搜索自己所需的美食推荐、美食商城的美食基本信息等。
设计思路:利用div进行网站的首页的显示设计,使页面更加的美好,利于用户的基本操作进行美食推荐、美食讨论以及在美食商城选购美食商品的活动,在相应的网页中进行加入Java代码。
模块名称:新用户注册。
模块功能:此模块用于未完成注册的普通用户用户。
用户注册时用户需添加基本信息,注册成为本站用户后,需填写用户名及密码,经过系统核实后方可登陆成功。
普通用户注册时需要输入个人基本信息。
普通用户注册后既可以进行登录。
主要输出项目有:用户名、密码等。
用户注册流程图:用户通过点击新用户注册项,申请注册,填写用户名(邮箱或手机号)、密码(可以检验密码强度)与确认密码。然后点击注册既可以注册为本网站的一名普通会员。登陆后既可以进行修改个人资料与其他基本活动。
图4-1网站用户注册流程图
Fig4-1 The flow chart of membership registration
模块名称:美食推荐。
模块功能:网站用户通过美食推荐模块发布信息。用户首先要进行登录,如果没有登陆,提示进行登录,否则发布美食推荐信息是无效的。用户登录后,首先要添加照片,再进行填写推荐美食的基本信息,点击确认进行发布美食推荐的信息。
美食照片,美食推荐推荐基本信息。
美食照片,美食推荐推荐基本信息。
用户首先要进行登录,如果没有登陆,提示进行登录,否则发布美食推荐信息是无效的。用户登录后,首先要添加照片,再进行填写推荐美食的基本信息,点击确认进行发布美食推荐的信息。
图4-2美食推荐信息流程图
Fig4-2 Foodspotting the information flow chart
模块名称:美食讨论。
模块功能:用户能进行讨论自己不会做的,认为好吃的,和其他正当理由发布美食讨论话题。
美食照片,美食讨论的基本信息。
美食照片,美食讨论的基本信息。
游客首先进行登录后,进行发布美食讨论信息,首先要添加美食照片,在进行填写美食讨论的基本信息,然后再进行发布美食讨论的话题。
图4-3美食讨论管理流程图
Fig4-3 Food recommendation management flow chart
模块名称:美食添加。
模块功能:用户登陆后,进入个人空间,可以管理自己在美食商城的自己商品,可以进行添加信息商品,删除老的商品,更新现有商品的基本信息。
美食商品的基本信息。
美食商品的基本信息。
网站用户进行登陆后,可以进行管理自己的美食,提价美食商品,首先要添加图片,再填写商品的基本信息,如果更或删除自己的美食商品。
图4-4美食添加管理流程图
Fig4-4 Add food management flow chart
模块名称:美食商城
模块功能:供用户进行买卖美食商品。
购买美食商品的基本信息。
购买美食商品的基本信息。
网站用户登录后,进行浏览美食商城,进行选择美食商品,确定后,进行确认信息,进行提交。
图4-5美食商城管理流程图
Fig4-5 Food shopping management flow chart
作为对EclipseIDE的扩展、补充的企业级工作平台(英文:MyEclipseEnterprise Workbench ,简称MyEclipse),使用它我们可以在数据库或JavaEE的开发、发布提高工作效率,应用程序服务器的整合方面极大的提高工作效率。它也是功能丰富的JavaEE集成开发的环境,包括了完美的编码、调试、测试和发布等基本工具,支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate等相关框架。
MyEclipse 是一个非常完美的用于编写Java, J2EE的 Eclipse 插件集合,MyEclipse的功能十分强大,同时支持功能十分广泛,最重要的是对各种开源产品的支持十分不错。MyEclipse同时可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接基本工具等多项功能。也就是说MyEclipse是几乎包括了现在所有主流开源产品的Eclipse开发工具。
MyEclipse 10版本使用最优秀的桌面与Web开发技术,包含 HTML5 、Java EE 6,同时并支持 JPA 2.0、JSF 2.0、Eclipselink 2.1以及OpenJPA 2.0等相关工具。相对于 IBM WebSphere 的用户来讲,MyEclipse Blue 因为支持最新版本的 WebSphere Portal Server 7.0、WebSphere 8 以及以前的版本,而且完美的支持 DB2 数据库。
在当代人们的生活中,互联网(Internet)已经成为生活、学习和工作中一个不可或缺的部分。互联网(Internet)是跨平台的,在浏览器上可以浏览各种各样的信息,由于开发大型网站总是会使用数据库来执行动态的数据存储的,所以JSP中需要对数据库进行动态访问,Oracle10g正是在这种情况下诞生的。
Oracle 在其技术白皮书上充分阐明,Oracle 10g数据库关键目标有二:1 降低管理开销,2 提高性能。 Oracle 10g的增强有对高可用性的增强、新的 Flashback 能力、支持回滚更新操作;对安全性的增强,便于管理大量的用户; BI 方面的增强 , 包括改进的 SQL 能力、分析功能、 OLAP 、数据挖掘的能力等;对非关系型数据存储的能力得到了改进; XML 的能力;对开发能力支持的加强,对生物信息学( Bioinformatics )的支持。
性能扩展能力
1.对新的架构支持
对 Intel 64 位平台的支持。支持 Infiniband 。极大地改进了多层开发架构下的性能和可扩展能力。新的版本也借用了 Windows操作系统对 Fiber 支持的优势。
2.高速数据处理能力
在这个版本中,一个新类型的表对象被引入。该表结构对大量插入和解析数据很有益处。这个表结构对 FIFO 的数据处理应用有着很好的支持。这样的应用在电信、生产应用中常常能够用到。通过使用这种优化的表结构能够对电信级的应用起到巨大的性能改进作用。
3.RAC workload 管理
一个新的服务框架。使得管理员作为服务来设置、管理监视应用负载。
4.针对 OLAP 的分区
通过对哈希分区的全局索引的支持可以提供大量的并发插入的能力
5.新的改进的调度器( Scheduler )
引入了一个新的数据库调度器,提供企业级调度功能。这个调度器可以使得管理员有能力在特定日期、特定时间调度 Job 。还有能力创建调度对象的库能够和既有的对象被其他的用户共享。
JSP全名为Java Server Pages,中文名又叫Java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP技术使用Java编程语言编写类XML的Tags和Scriptlets,来封装产生动态网页的处理逻辑。网页还能通过Tags和Scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java平台与语言最开始只是由SUN公司在1990年12月开始研究的一个内部项目。SUN公司的一个叫做帕特里克·诺顿的工程师被自己开发的C和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth 计划”的项目的机会。
Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(Operator Overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的性能。
(1)在写一个静态方法是用 static public list<E> name(){}来进行编写。
(2)在调用相应方法时应当返回一个int类型的值来进行判断是否操作成功。
(3)每一种类的都存在固有的包中。例如:访问数据库的类并执行数据库操作的方法在一固有的包中。
详见附录C。
软件测试是一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。
图6-1 软件测试的过程
Fig6-1 Software tests process
软件测试应遵循以下几个原则:
1.测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
2.程序员应该避免检查自己的程序,软件测试应该由第三方来负责。
3.设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,如网络异常中断、电源断电等。
4.应该充分注意测试中的群集现象。
5.对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。
6.制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。
7.妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
(1)黑盒测试:它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试方法主要是为了发现:是否有不正确的或遗漏的功能?能否正确的接收?能否输出正确的结果?是否有数据结构的错误或外部信息(例如数据文件)访问错误?性能上是否满足要求?是否有初始化或终止性错误?
(2)白盒测试:又称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
软件人员使用白盒测试方法,主要思想是对程序模块进行检查:对程序模块的所有独立的执行路线至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都执行测试一次,在循环边界和运行界限内执行循环体;测试内部数据结构的有效性等。
表6-1 注册测试用例
Tab 6-1 Registered test cases
模块 |
测试用例描述 |
操作过程及数据 |
预期结果 |
实际结果 |
用例类型 |
用户 注册
用户 注册
|
输入正确的用户名、密码,进行注册。 |
点击进入新会员注册,选择用户类型进行注册。用户名:zhanoligang;密码:123。 |
注册成功,显示“注册成功”转入起始界面。 |
注册成功,显示“注册成功”转入起始界面。 |
功能点 |
输入已存在的用户名及密码。 |
点击进入新会员注册,选择用户类型进行注册。用户名:zhaoligang;密码:123。 |
注册失败,显示“用户名已经存在”。 |
注册失败,显示“用户名已经存在”。 |
功能点 |
|
不输入用户名、密码。 |
点击进入新会员注册,选择用户类型进行注册。不输入各项,点击“注册”。 |
注册失败,提示用户名、密码不能为空。 |
注册失败,提示用户名、密码不能为空。 |
功能点 |
表6-2登录测试用例
Tab 6-2 The login test cases
模块 |
测试用例描述 |
操作过程及数据 |
预期结果 |
实际结果 |
用例类型 |
美食 推荐
|
用户登录后,输入美食照片,输入美食信息,发布 |
美食推荐的发表,输入美食照片,美食信息等,点击“发布”。 |
发布成功,新的美食推荐区出现自己推荐的美食。 |
发布成功,新的美食推荐区出现自己推荐的美食。 |
功能点 |
用户没有登录,进行发布。 |
美食推荐的发表,输入美食照片,美食信息等,点击“发布”。 |
发布失败,用户进行登录页面 |
发布失败,用户进行登录页面。 |
功能点 |
|
不输入美食信息或者照片 |
用户登陆后,不输入美食照片,和信息。 |
发布失败,显示出要“输入美食的相应的信息” |
发布失败,显示出要“输入美食的相应的信息” |
功能点 |
表6-3发布信息功能测试用例
Tab 6-3 Release information function test cases
模块
|
测试用例描述 |
操作过程及数据 |
预期结果 |
实际结果 |
用例类型 |
美食 讨论 |
用户登录后,发布美食讨论信息 |
用户登录后,输入发布美食照片,美食讨论的基本信息。点击进行发布。 |
在美食讨论的页面出现自己发布的美食讨论。 |
在美食讨论的页面出现自己发布的美食讨论。 |
功能点 |
用户未登录,发布美食讨论信息。 |
用户未登录时,输入发布美食照片,美食讨论的基本信息。点击进行发布。 |
跳转到用户登录页面。 |
跳转到用户登录页面。 |
功能点 |
|
用户登陆后,进行发布美食,没填写必要信息。 |
用户登陆后,进行发布美食,没填写必要信息。 |
发布失败,显示“请填写必要信息”。 |
发布失败,显示“请填写必要信息”。 |
功能点
|
表6-4美食添加功能测试用例
Tab 6-4 The food add function function test cases
模块
|
测试用例描述 |
操作过程及数据 |
预期结果 |
实际结果 |
用例类型 |
美食 添加
|
用户登陆后,点击“管理自己的美食”选项,进入美食管理。 |
添加商品照片,商品的基本信息,点击“确定”,进行发布。 |
显示“发布成功”。可以在管理自己的美食商品中发现自己的美食商品。 |
显示“发布成功”。可以在管理自己的美食商品中发现自己的美食商品。 |
功能点 |
用户登陆后,点击“管理自己的美食”选项,进入美食管理。 |
没有商品照片,商品的基本信息,点击“确定”,进行发布。 |
页面提示,请添加美食照片。 |
页面提示,请添加美食照片。 |
页面校验 |
|
用户登陆后,点击“管理自己的美食”选项,进入美食管理。 |
添加商品照片,没添加商品的基本信息,点击“确定”,进行发布。 |
提示,添加“美食商品的基本信息”。 |
提示,添加“美食商品的基本信息”。 |
功能点 |
表6-5美食商城功能测试用例
Tab 6-5 Food shopping function test cases
模块
|
测试用例描述 |
操作过程及数据 |
预期结果 |
实际结果 |
用例类型 |
美食 商城 |
用户登陆后,浏览商品,选择商品,进行购买。 |
用户登陆后,浏览商品,选择商品,进行购买。 |
购买成功!! |
购买成功!! |
功能点
|
用户没有登录,进行浏览商品,进入商品确认页。 |
用户没有登录,进行浏览商品,进入商品确认页, |
提示“登陆后进行购买”。 |
提示“登陆后进行购买”。 |
功能点
|
根据软件测试结果显示,物流信息管理平台可以在Windows7操作系统和IE9.0下正常运行,可以满足用户的基本需求,与预期目标基本相一致。
因为美食网站平台主要注重的是信息的发布(美食推荐、美食讨论、美食商城的买卖),可能在其他的一些小的细节不是很完美,例如,美食推荐没有添加照片,直接发布美食推荐,会造成没说有美食图片,直接是推荐的美食基本信息发布在网站上。其他的特使如此,所以,再添加信息的时候,首先要添加图片,在进行发表,这样才会有图片。
表6-7软件测试结论
Tab6-7 Software testing conclusion
功能名称 |
所属模块 |
预期结果 |
测试结果 |
用户注册 |
新用户注册 |
注册功能正常,用户可以注册成功 |
注册功能正常,用户可以注册成功 |
用户登录 |
用户登录 |
用户登录成功 |
用户登录成功 |
美食推荐 |
美食推荐 |
用户可以成功发布美食推荐信息 |
用户可以成功发布美食推荐信息 |
美食讨论 |
美食讨论 |
用户可以成功发布美食推荐信息 |
用户可以成功发布美食推荐信息 |
美食商城 |
美食商城 |
用户可以成功买卖美食商品 |
用户可以成功买卖美食商品 |
美食商品管理 |
美食添加 |
用户可以成功发布美食商品信息 |
用户可以成功发布美食商品信息 |
美食网站已经基本达到目标要求。通过系统的测试、运行还有很多小问题,大部分已经修改完毕,但是还存在一些不完美的地方,例如:美食买卖商品的买卖没有在线支付功能,只能货到付款,这样只能东西送到是才能收到自己的美食的钱。美食网站都是可以正常运行的,可以满足用户的开网上美食商店的需求,每个用户都可以开,都可以买食物, 都可以发表一些美食信息,例如:美食推荐、美食讨论、美食商品与买美食商品的基本功能,这些信息都可以进行维护人员进行查看,满足维护人员的基本需求。
基于Java Web美食网站的研究与开发,历时两个多月,完成了美食网站的编码工作于论文的书写,经历了很多意想不到的问题,经常出现原来没有出现的错误,在上网查询与老师、同学的帮助下攻克了一个又一个发生的错误。该美食网站基于Hibernate框架建立起来的。在设计美食讨论模块时,实现论坛的模式来进行设计,用户可以进行发布美食讨论信息,其他用户可以对该美食讨论话题进行回复,此时,用户还可以对用户回复的内容再次进行二次回复,使之成为论坛的回复模式,每个人都可以进行回复,该功能的启发是由于QQ的评论功能,在自己的代码中写入一个实现该回复的算法和适当的数据库表结构是成为非常关键的因素。其他的功能也是如此,一步一步进行设计,最终完成并实现美食网站的设计与编码工作。
该美食网站是一个对用户的一个公共美食推荐、美食讨论、购买美食的商品的网站用户交互美食平台、讨论美食与买卖美食平台,凡是在此网站注册的用户都可以进行发表美食推荐信息、美食讨论信息、在美食商城中购买美食商品,每个网站用户都可以进行发布、销售与管理自己的美食商品,该网站也可以对网站的维护人员进行留言,网站注册用户可以相互留言等功能。但是由于所学的知识与技术有限,再加上毕业设计的时间较短与仓促,该网站系统尚有许多不足之处与需要改进的地方,如对界面的美化、信息验证等方面还有待完善和提高。相信在日后的学习和工作上都将会越做越好,对自己的所负责工作更加的细心。
毕业设计的完成代表着本科学习阶段的最终结束,也为我们在校理论知识的学习画上了完美的句号。不由感慨很多,宝贵的大学学习生活时间转瞬即逝,通过这次匆忙而且是难忘美好的毕业设计,我不仅收获了更多的知识而且也锻炼了自己的品质,在对待事情的态度上更加严谨也更加有细心与耐心对于困难的事情,这些都将成为我日后工作学习生活中的宝贵财富。
时光荏苒,思念的大学学习生活也将结束,此次毕业设计历时两个多月,是我大学学习中遇到过的时段最长、涉及内容最广、工作量最大的一次研究与开发一个系统。在毕业设计即将完成之际,往事在我脑海中一幕一幕不断重现,我不禁感慨良多,经过这两个月,使自己成熟了许多。
论文的写作是枯燥艰辛且又富有挑战的,由于常戬老师的谆谆诱导、同班同学的出谋划策及家长的支持鼓励,是我坚持完成论文的动力源泉。在此,我特别要感谢我的导师常戬老师.从论文的选题、文献的采集、框架的设计、结构的布局到最终的论文定稿,从内容到格式,从标题到标点,他都费尽心血。没有常戬老师的辛勤栽培、孜孜教诲,就没有我论文的顺利完成。
感谢软件工程系的各位同学,与他们的交流使我受益颇多。最后要感谢我的家人以及我的朋友们对我的理解、支持、鼓励和帮助,正是因为有了他们,我所做的一切才更有意义;也正是因为有了他们,我才有了追求进步的勇气和信心.
时间的仓促及自身专业水平的不足,整篇论文肯定存在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激!
[1] 张金丹.基于JSP的精品课程动态网站的分析与设计[J]. 信息系统工程. 2016(04)
[2] 孙雷.浅谈《动态网站建设》课程的几个方法[J]. 信息与电脑(理论版). 2010(07)
[3]刘绍杰.项目教学法在《动态网站设计》课程中的应用[J].职业教育研究.2013(03).
[4] 束亦清.《JSP动态网站开发》课程开发的难点分析[J]. 中国科教创新导刊. 2012(05)
[5] 史学梅.基于JavaScript的JSP页面数据导出Excel[J]. 现代计算机(专业版). 2010(03)
[6] 蒋小涵.校园外卖网上订餐系统的设计与实现[J]. 信息系统工程. 2015(04)
[7] 邹钦忠,孔令美,张艳红.基于JSP技术的网上自助点餐系统的设计与实现[J]. 电脑知识与技术. 2015(33)
[8] 于萧榕,陈刚,郭昌言.Struts在商品房网上备案系统中的应用[J]. 现代电子技术. 2010(24)
[9] 陈书理,母军臣,张书贵.基于Struts和Hibernate的学生管理信息系统的研究与设计[J]. 软件导刊. 2010(07)
[10] 叶浩波.基于Struts和Hibernate的高校学生信息管理系统的设计[J]. 科技信息. 2012(18)
[11] 闫帅领.面向Java Web的hibernate框架的研究与应用[J]. 黑龙江科技信息. 2012(26)
[12] 闫帅领.基于JSP的财务信息发布系统的设计与实现[J]. 科技风. 2012(13)
[13] 周庞荣. 基于SSH框架的钢铁交易平台的设计与实现[J]. 计算机技术与发展. 2013(05)
[14] 施剑凡.高校网上订餐系统的设计与实现[J]. 科技视界. 2013(25)
[15] 刘晓义. XML技术及应用[M].哈尔滨工程大学出版社, 2011年06月.
[16] 赵俊峰 等. Java Web应用开发案例教程:基于MVC模式的JSP+Servlet+JDBC和AJAX[M]. 清华大学出版社, 2012年01月.
[17] Zoya Ali. Designing Object Oriented Software Applications within the Context of Software Frameworks[D]. Ohio State University,2011.
[18] Rachit Mohan Garg, YaminiSood, Balaji Kottana, Pallavi Totlani. A Framework Based Approach for the Development of Web Based Applications Waknaghat[J].Jaypee University of Information Technology,2011,1(1):1-4.
[19] Matthew MacDonald. Beginning ASP.NET 4.0 in C# 2010[M]. Apress, 2010.
[20] Abraham Silberschatz, Henry F. Korth, S. Sudar shan. Database System Concepts[M]. McGraw-Hill, 2010.
[21] Alan Beaulieu. Learning SQLO‘Reilly Series[M]. O‘Reilly Media, Inc., 2009
[22] Abraham Silberschatz, Henry F. Korth, S. Sudar shan. Database System Concepts[M]. McGraw-Hill, 2010.
[23] Zoya Ali. Designing Object Oriented Software Applications within the Context of Software Frameworks[D]. Ohio State University,2011.
[24] Rachit Mohan Garg, YaminiSood, Balaji Kottana, Pallavi Totlani. A Framework Based Approach for the Development of Web Based Applications Waknaghat[J].Jaypee University of Information Technology,2011,1(1):1-4.
[25] Elliotle R. Java network programming O’Reilly[M]. 北京:机械工业出版社,2011.
[26] Ted Husted. Struts In Action[M]. 北京:电子工业出版社,2013.
[27] Richard M. Enterprise Javabeans[J]. 北京:中国青年出版社,2011.
[28] Bruce E. Thinking in Java[M]. 北京:人民邮电出版社,2012.
[29] Chuck Gavaness. Programming Jakarta Struts2nd Edition[J]. 北京:电子工业出版社,2011.
[30] Buell.Datastructures using Java. Jones&Bartlett Learning.2013
[31] Martin NgobyeComputing Static Slice for Java Programs.2012
原文:https://www.cnblogs.com/mujawfm/p/12695297.html