网络订餐系统设计与实现

摘要
二十一世纪是一个集数字化,网络化,信息化的,以网络为核心的社会。中国的网民充分领略到“畅游天地间,网络无极限” 所带来的畅快。随着Internet的飞速发展,使得网络的应用日益的广泛。如电子商务,电子政务,网上医疗,网上娱乐,网络游戏,网络教学等。
本次毕业设计的题目就是网络订餐系统。
本论文就毕业设计的内容,系统地阐述了整个网络订餐系统的功能及实现。实现了从菜品管理,菜品分类和查询,到订餐车实现,用户订单处理,再到系统管理。基本上实现了网上购物的功能流程,能够实现用户与商家在网上进行订餐交易。本系统界面简单直观,易于操作和使用,交互性强,完全基于Internet网络。
经过分析,我们使用 SUN公司的JSP开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成满意的可行系统。

目 录
第一章 开发背景----------------------------------------------------------------------------------------1
1.1 目的和意义---------------------------------------------------------------------------------------------1
1.2 开发设计思想------------------------------------------------------------------------------------------1
1.3 开发目标------------------------------------------------------------------------------------------------1
第二章 开发工具和环境简介-------------------------------------------------------------------=------2
2.1 Java Server Page 简介---------------------------------------------------------------------------------2
2.2 SQL 简介---------------------------------------------------------------------------------------------2
2.3 JDBC 驱动程序简介----------------------------------------------------------------------------------4
2.4 JavaBeans 简介---------------------------------------------------------------------------------------5
2.5 JAVA 简介---------------------------------------------------------------------------------------------5
2.6 电子商务简介---------------------------------------------------------------------------------------8
第三章 网络便民服务管理系统功能分析------------------------------------------------------------9
3.1 系统功能分析---------------------------------------------------------------------------------------9
3.2 可行性研究------------------------------------------------------------------------------------------10
3.3 需求分析-------------------------------------------------------------------------------------------12
3.4 系统总体结构图----------------------------------------------------------------------------------13
3.5 数据字典---------------------------------------------------------------------------------------------17
3.6 需求分析复审---------------------------------------------------------------------------------------18
第四章 网络便民服务管理系统总体设计------------------------------------------------------------18
4.1.系统功能设计目标-----------------------------------------------------------------------------------18
4.2.网络订餐系统功能模块划分-----------------------------------------------------------------------19
4.3 网上购物的体系结构-------------------------------------------------------------------------------20
第五章 数据库设计----------------------------------------------------------------------------------------21
5.1 数据库系统概述------------------------------------------------------------------------------------21
5.2 数据库表设计---------------------------------------------------------------------------------------21
第六章 程序设计------------------------------------------------------------------------------------------24
6.1 程序说明---------------------------------------------------------------------------------------------24
6.2 具体模块划分---------------------------------------------------------------------------------------25
第七章 软件安装与调试------------------------------------------------------------------------------29
7.1 软件的安装与配置---------------------------------------------------------------------------------29
7.2 软件调试---------------------------------------------------------------------------------------------30
7.3 软件测试---------------------------------------------------------------------------------------------30
第八章 结束语------------------------------------------------------------------------------------------31
第九章 附 录---------------------------------------------------------------------------------------------32
9.1 致谢---------------------------------------------------------------------------------------------------32
9.2 参考文献---------------------------------------------------------------------------------------------32

第一章 开发背景
1.1 目的和意义
本系统的设计目的是为了满足消费者只要通过互联网就可以足不出户的订购自己喜欢的菜品,改变传统商业交易,在互联网上进行交易,实现网上购买菜品。
本论文主要涉及软件,数据库与网络技术等。涵盖知识面广,可有效地提高学生综合运用所学知识分析解决问题的能力,增强学生对事物的理解与掌握能力,培养学生掌握科学的研究方法,正确的设计思想,独立思考,勇于进取,探索创新,为今后进一步学习与工作奠定了良好的基础。
1.2 开发设计思想
本系统用JSP语言来编写网络订餐系统,数据库用 MYSQL 来连接系统,通过编写JavaBeans来进行后台业务逻辑控制,即JSP +JavaBeans + MYSQL 三层模式完成整个设计工作。本系统全部基于Internet网络,以JSP语言对网站进行开发,注重用户与网站的交互性。因此在这样的背景下,针对当前Internet网络发展趋势来计网络订餐系统就成为了当今应用软件的首选体系结构。
1.3 开发目标
网上购物的优势在于选择面大、价格便宜、交易方便、节省时间和精力等。整个菜品市场一片繁荣。在中国,网上购物有发展的必要,也有发展的基础,发展网上购物的各方面条件也日趋成熟,但是还存在一些问题,只有把问题解决好了,才能保证网上购物的蓬勃发展。

第二章 开发工具和环境简介
2.1 JSP技术简介
JSP(Java Server Page服务器网页)是从1998年开始出现的新技术。由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的web开发技术。在传统的网页HTML文件(.htm,.html)中加入脚本片段和JSP标记(Tag),构成JSP网页(*.jsp)。JSP技术为创建显示动态生成内容的web页面提供了简便的方法。JSP作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。
在国外,己经大量使用JSP作为网络应用程序的开发工具,而在国内,尽管JSP还不是主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向JSP,利用JSP来开发动态网站。
2.2 JSP工作原理
JSP是面向服务器的,因此支持任何浏览器。当Web服务器和JSP引擎遇到访问JSP网页的请求时,JSP引擎将请求对象发送给服务器端的相关组件,比如JavaBean组件、Servlet或EJB等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回JSP引擎。JSP引擎将响应对象传递给JSP页面,根据JSP页面的HTML格式完成数据编排,最后Web服务器和JSP引擎将格式化后的JSP页面以HTML格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器——Web服务器——后台数据库的三层架构模式。因为JSP所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。
2.3 JSP体系结构
JSP网站开发标准给出了两种使用JSP的技术,可以归纳为模式一、模式二。
模式一:JSP+JavaBeans技术 在这种模式中,JSP页面独自响应请求并将处理结果返回给客户。Bean处理所有数据访问,JSP实现页面的表现,以实现内容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或Java代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所以模式一可用于小型应用,不能够满足大型应用的需要。
模式二:JSP+Servlet+JavaBeans技术 Servlet技术是一种采用Java技术来实现CGI功能的一种技术,Servlet技术非常适于服务器端的处理和编程,并且Servlet会长期驻留在内存。
从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的MVC结构(Model/view/controller),其中Servlet对应controller,处于控制者的位置,处理HTTP请求,负责生成JSP中使用的Beans组件或对象,并判断应将请求传递给哪个JSP等,JSP对应view,负责生成最终的动态网页并返回给浏览器。而JavaBeans对应的是Model,实现各个具体的应用逻辑与功能。
2.4 JSP的特点
1.简化的页面生成技术。
JSP页面用标准的HTML或XML命令来处理页面的格式化和布局设计,而用类似HTML、XML的标记和Java语言编写的脚本程序生成页面内容。这使得页面形式与页面内容互相独立,非常有利于大型项目的分工合作。
2.与Java平台有机集成。
JSP技术是Java 2平台的重要组成部分,JSP使用Java语言作为它的脚本语言。在JSP页面中可以使用几乎所有的Java组件和Java API,这就能充分发挥出Java语言的强大功能。使用JSP技术可以创建具有高度可伸缩性和可靠性的Web应用程序。
3.硬件平台和服务器无关性。
JSP作为Java家族的一员,秉承了Java技术的“一次编写,随处可用(Write Once,Rum Anywhere)”的特性,可以运行于大多数流行的操作系统平台及Web服务器,这种与服务器硬件和操作系统平台的无关性是JSP相对于其它动态网页技术最大的一个优点。
4.功能可扩展性。
如同的JSP技术可以通过ActiveX/COM组件来扩展功能一样,JSP可以通过JavaBean和EJB(Enterprise JavaBean)以及自定义的标记来扩展功能。
JSP可以通过JDBC,与诸如Oracle、MYSQL这样的大型关系数据库进行连接。
JSP提供了一些隐含对象。这些隐含对象在JSP页面中可以直接引用,而不必首先声明。利用JSP提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。例如,利用request对象,可以很容易地接收用户在HTML表单中提交的信息。
2.5 MYSQL 数据库
SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。 SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出的最新版本。 SQL Server 特点:
1.真正的客户机/服务器体系结构。
2.图形化用户界面,使系统管理和数据库管理更加直观、简单。
3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
4.SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。
5.具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。
6.对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。
7.SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。

2.6 系统数据库连接
JDBC技术是Java DataBase Connectivity的缩写,它是SUN公司提供的一种支持基本SQL功能的通用的应用程序接口(Application Programming Interface)。它由一组用Java语言编写的类和接口组成。通过这些类和接口,程序开发人员可以在Java语言中方便地建立与数据库的链接,通过执行相应SQL语句,完成对不同数据库的访问。因此,开发人员使用JDBC API可以不必编写一个应用程序来访问Sybase数据库,又另外编写一个应用程序去访问Oracle数据库,再写一个应用程序访问的MYSQL。不但如此,使用Java语言编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上开发不同的应用程序。
简单地说,JDBC能完成下列三件事:
1.同一个数据库建立连接;
2.向数据库建立连接;
3.处理数据库返回的结果。
JDBC是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供一个统一的用户界面。说JDBC是一处低级的API,是指它直接调用SQL命令,它比其他的一些数据库连接API要容易使用些,但它有同样可以作为更高级的,用户办面更友好的API或开发工具基础。
很多可视化的Java开发工具,如Visual Age For Java、Visual Café、J++等都提供了基于JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为Java类,程序员通过可视化工具直接对Java对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种使用JDBC API 的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的SQL命令以及Java程序。通过这处方式,用户可以完成对数据库的操作,即使他并不了解SQL语法以及JDBC编程。
数据库访问的三层结构如图5.1所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。

图5.1 使用中间件的数据库访问三层结构
用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过Web服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问模式。
在三层模型中,命令将被发送到服务的”中间层”,而”中间层”将SQL语句发送到数据库。数据库处理SQL语句并将结果返回”中间层”,然后”中间层”将它们返回用户。其模型如图5.2所示。

图5.2 JDBC的三层模型
因为”中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层API,这个API可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。
JDBC是JAVA应用程序与数据库的沟通桥梁。它提供了三项服务功能:一、与数据库建立连接。二、将SQL语句传递给数据库。三、从数据库取得SQL语句的执行结果。当JDBC要与数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,Class.forName()即是在执行此项工作。建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(Java VirtualL Machine)中,本系统中利用java.lang.Class类内的forName()静态函数依据指定的类名称,将JDBC驱动程序载入进来。完成载入驱动程序的步骤后,必须使用java.sal.DriverManager类所提供的getConnection()静态函数,取得与数据库间的连接对象。此连接对象的类类型为java.sal.Connection,必须通过它才能将SQL指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得Statement对象才能对数据库执行SQL指令。Statement主要实现两个功能:执行SQL语句以及取得执行结果。在java.sql.Statement的sql对象中执行查询或修改命令的函数后传回的是一个ResultSet 对象,这个对象提供了一个存取SQL执行结果的管道,以便通过它将表格数据从数据库中取出。每个Statement对象只能产生一个ResultSet 对象。
数据库连接如图5.3所示:

图5.3 数据库的连接处理
数据库的连接处理具体实现如下:
//建立JDBC——ODBC桥
sun.jdbc.odbc.JdbcOdbcDriver;
//桥建立不成功时的错误处理
catch(ClassNotFoundException event){}
//建立与数据库的连接,并发送SQL查询语句,将结果保存到rs对象中
Con=建立JDBC——ODBC桥
Sql=SQL查询语句
执行查询
Rs=返回结果
//SQL出错处理
catch(SQLException e1){}

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。  
Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。
JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库企业也可以用 JDBC 通过 Intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和UNIX 等各种不同的操作系统)。随着越来越多的程序员开始使用Java 编程语言,对从 Java 中便捷地访问数据库的要求也在日益增加。
MIS 管理员们都喜欢 Java 和 JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务, Java 和JDBC 可为外部客户提供获取信息更新的更好方法。
简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。下列代码段给出了以上三步的基本示例:
Connection con = DriverManager.getConnection(“jdbc:odbc:wombat”,“login”,
“password”);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(“SELECT a, b, c FROM Table1”);
while (rs.next()) {
int x = rs.getInt(“a”);
String s = rs.getString(“b”);
float f = rs.getFloat(“c”);
}
上述代码对基于JDBC的数据库访问做了经典的总结。

第三章 网络便民服务管理系统功能分析
为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库)。模块是数据说明、可执行语句等程序设计对象的集合,它是单独命名的而且可通过名字来访问。模块化就是把程序化分成若干个模块,每个模块完成一个子功能,把这些模块集起来组成一个整体,可以完成指定的满足问题的要求。
3.1 系统功能分析
首先对现有系统进行分析,现有系统是信息的重要来源。分析已有系统的功能和实现,从而确定新系统的设计目标和模型。由于条件有限,调研主要是在网上进行。即通过在网上已有的订餐网站注册成会员来了解其具备的功能。
1.从用户角度来看:
用户通过在线注册成为网站的用户,可以获得以下功能:菜品浏览,购买菜品,找回密码,修改密码,修改个人信息,菜品简介、订餐车、留言板等。
2.从网站的角度看:
(1)网站应该包含菜品搜索功能:按菜品名(模糊)查询。
(2)订单处理功能,确认订单方式:
(3)管理员管理:
查看用户信息,并根据用户信息和用户订单对菜品进行发派。
(4)菜品浏览
3.2 可行性研究
可行性研究阶段的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题做出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有任何实际意义而引起的浪费,对新系统可行性的分析,要求用最小的代价在尽量短的时间内确定系统是否可行。
①技术可行性分析
网络订餐系统的开发是一项复杂的系统工程。为了保证系统开发成功,必须采用工程化的系统开发方法,并研究出一些符合工程化标准的开发方法。这些方法旨在指导开发者进行工程化的系统开发,从而加快系统开发的速度,保证质量以及降低开发成本。工程化的系统开发方法确实在开发实践中取得了一定的效果。此次开发使用JSP作为开发语言,采用Servlet技术,Tomcat5.0作为Web服务器。
②运行可行性分析:
随着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和技能。随着Internet的发展,用户对于网络、WINDOWS等环境下的软件使用比较熟悉,对于新鲜事物,用户表现出极大的兴趣和热情。
③经济可行性分析:
网络订餐系统给人们带来了方便,成为一种全新的商务模式。因此,不用出门就可以在家购物的新时尚已经到来,构建一个网络订餐系统在经济上是完全可行的。
就本系统而言,随着电脑的普及,为学生在网络上进行购物提供有利的条件。而一个网络订餐系统可以为学生提供软件条件,这样学生便可以足不出户的买菜品了。商家可以从中获得利润,两全其美。
通过以上的分析,开发网络订餐系统是完全可行的。
④运行环境:
本系统采用联网多机多用户操作方式,系统的运行环境包括硬件、操作系统、关系数据库等软件:
硬件:中央处理器(CPU):奔4 以上的处理器;
硬 盘:80 GB以上硬盘;
内 存:512 MB;
显示器: 17寸显示器;
操作系统: Windows XP,
关系数据库: MYSQL ;
3.3 需求分析
需求分析的任务是通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变。
1.在这里我们需要了解用户有什么样的具体要求和对系统性能的要求。
(1)用户的需求分析:
(a)用户注册
(b)用户登录
©菜品浏览
(d)菜品订购
(e)菜品查询
(f)订单修改
(g)修改密码
(h)修改个人信息
(i)管理员
(2)系统性能分析
对数据的安全性、完整性要求:用户信息保密,只有管理员能任意修改。确保网上支付安全。菜品信息、用户信息必须保证其完整性。防止恶意删改。以下是系统性能需求:
(a)准确性和可靠性高
(b)页面友好,功能齐全,且可以使用
©系统便于维护和升级。
(d)数据库访问效率高
3.4 系统总体结构图:

系统ER图:

数据流图:
   数据流图:是一种描述软件系统逻辑模型的图形符号。这种图形表示即可以从本质上描述计算机软件系统的工作情况,又适合非计算机专业人员学习和掌握,在需求分析中是一种很好的交流和表达工具。
   
 带箭头的线表示数据流,其中箭头表示了数据的流动方向。
 圆框表示对数据的加工。
 方框表示数据的起点和终点。画分层数据流图。
分层数据流图:

(a)网络便民服务管理系统E-R图

(b)检查网络便民服务管理系统E-R图

©用户基本信息处理E-R图

(d)用户订单处理E-R图

(f)菜品查询处理E-R图

(h)管理员E—R图

3.5 数据字典:
字典的作用是给词汇以定义和解释。在结构化分析中,数据字典的作用是给数据流图上每个成分以定义和说明。换句话说,数据流图上所有成分的定义和解释的文字集合就是数据字典。数据字典对数据流图和各种成分起注解说明作用,给这些成分赋以实际的内容。除此之外,数据字典还要对系统分析中其他需要说明的问题进行定义和说明。数据字典描述的主要内容有:数据流、数据元素、数据存储、加工、外部项。其中数据元素是组成数据流的基本成分,在系统分析中,数据字典起着重要的作用。

第四章 网络便民服务管理系统总体设计
4.1.系统功能设计目标
理论系统功能设计目标如下:
(1) 实用性强:我们努力使系统符合实际操作流程的习惯,并尽量减少用户的输入,易学易用的友好的用户界面,满足各层次的用户使用的需求;
(2) 先进的程序结构:使用当代前卫的软件编程,能延长其生命周期,易于维护与管理;
(3) 安全可靠性高:后台维护功能齐全,根据平台在各个阶段不同的使用情况,管理人员可以设置相应的操作权限,增加系统注册,分配各个栏目的管理权限,实现系统的维护,保证系统的安全、可靠;
(4) 使用模块化设计的方法:使系统具有良好的可扩充性,以适应其不同阶段的发展需要,便于后来者分析、维护;
(5) 操作简单,维护方便:每个子系统都具有相对独立的系统维护功能
对可变化的项目可自行维护;
(6) 查询功能强大:可以对菜品的基本情况、用户基本情况,菜品评信息,用户留言等按各种方式查询,可形成各种表单,同时还可对其进行汇总,使管理人员能及时准确地掌握用户和菜品等的基本情况。
4.2.网络订餐系统功能模块划分:
根据需求分析与系统功能设计目标,结合实际情况本系统功能模块设计分为如下几个模块:

1.主页:在这里我们可以看见本系统的主要功能和信息。
2.用户注册:在这里我们可以注册我们的基本信息,其中电话和Email是比较重要的,因为我们需要对这些信息进行处理,以方便用户的付款和邮购。
3.用户登陆:为了方便用户的付款,邮购和管理,我们需要变成会员后才可以进行消费。
4.菜品浏览:成功登陆后的用户可以分页浏览菜品菜品,并将想要的菜品提交到填写订单页面。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登录页面”。
5.订购菜品:成功登陆的用户可以在该页面定购所需要的菜品。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
6.查看订单:成功登陆的用户可以在该页修改已经订购的菜品。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
7.修改订单:成功登陆的用户可以在该页修改或删除已经订购的菜品。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
8.菜品查询:成功登陆的用户可以在该页查找自己需要的菜品。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
9.修改密码:成功登陆的用户可以在该页修改自己的密码。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
10.修改个人信息:成功登陆的用户可以在该页修改自己当初注册时的信息。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
11.商城公告:发布各种菜品信息或者新闻。
11.管理员:查看用户订单,查看用户信息,并根据用户信息和用户订单对菜品进行发派。
4.3 网络便民服务的体系结构:
三层结构:

即:JSP技术 + JavaBeans + MYSQL 数据库

第五章 数据库设计
5.1 数据库系统概述:
数据库系统是在文件系统的基础上发展而来的,经历了层次数据库、网状数据库、关系数据库三个阶段。由于关系数据库采用人们比较容易理解和接受的二维表格来组织数据,发展迅速,已成为数据库产品的主流。
本系统的前端开发是使用JSP技术,通过JavaBeans进行逻辑控制和数据库连接,而后台数据库采用的是MYSQL 。MYSQL 数据库管理系统是一项全面完整的数据库与分析产品。MYSQL 非常容易学习、使用,介绍、学习资料比较多,MYSQL 全面支持Web功能的数据库解决方案,与此同时,MYSQL 还在可伸缩性与可靠性方面保持着多项基准测试纪录,而这两方面特性又都是企业数据库系统在激烈市场竞争中克敌致胜的关键所在。无论以应用程序开发速度还是以事务处理运行速度来衡量,MYSQL 都堪称最为快捷的数据库系统。
对比MYSQL 和其他的大型数据库管理系统,MYSQL 具有可靠的安全性,较快的存储速度,高度的兼容性,简单易用,应用MYSQL 作为后台数据库为系统的开发提供了强有力的支持,并对以后软件的运行提供了坚实的基础,因此,我们采用了MYSQL 作为后台数据库。
5.2 数据库表设计:
本系统的数据库其中包括九个表,分别为菜品菜品表book, 用户注册表member, 管理员表admin, 菜品类型表booktype, 评论表commont, 订餐车表gouwuche, 新闻表news,定单表num,定单详细信息表orderbook。详情请见下面的数据库表:
1、菜品菜品表booK

2、管理员表admin

3、菜品类型表booktype

4、用户注册表member

5、定单详细信息表orderbook

第六章 程序设计
6.1 程序说明
根据前边的需求分析和系统总体设计内容进行程序设计。本系统是以Java 语言为基础进行开发的。我个人负责的模块主要是采用JSP技术+JavaBeans+ MYSQL 模式进行模块开发与实现的。全部都以面向对象的方法进行设计和实现。
一.在程序设计时,我用到了下面的一些定义,解释如下:
1.Page用来定义整个JSP页面的一些属性和这些属性的的值。
2.Page import该属性的作用是为JSP页面引入JAVA核心包中的类,这样就可以在JSP页面的程序片部分,变量及函数声明部分,表达式部分使用的类。可以为该属性指定多个值,该属性的值可以是JAVA某个包中的所有类或一个具体的类。
3.include file 表示的是静态的插入一个文件。

6.2 具体模块划分
1 .主页面模块

2.用户注册模块
用户注册是为第一次登录网站的用户所设计的。在用户成为本站用户之前一定要注册才可以访问我网站的其它网页。
①用户注册包括:登录名称,真实姓名,设置密码,电子邮件等。
②注册成功后,才可以访问本站的其他页面。

3.用户登录模块
①用户登录包括:登录名称,输入密码。
②当用户登录后由管理员核对该用户的名称和密码是否正确,如果无误的话用户可以通过检查直接进入网站的其它页面进行浏览和订购。

4.菜品浏览模块
菜品浏览:成功登陆后的用户可以分页浏览菜品菜品,并将想要的菜品提交到填写订单页面。

5.订餐车模块

6.修改密码及信息模块 (此模块是我负责的)
修改密码:成功登陆的用户可以在该页修改自己的密码及信息。

第七章 软件安装与调试
7.1 软件的安装与配置
(1)软件安装:操作系统Windows XP
MYSQL
JDK安装:
JDK安装特别简单,和安装其他的软件没什么区别。
JDK的配置:
设置JAVA_HOME环境变量:JDK 安装目录 例:C:\j2sdk1.4;
设置CLASSPATH环境变量:JDK安装目录\lib\tools.jar 例:
C:\j2sdk1.4\lib\tools.jar;.
设置PATH环境变量:JDK 安装目录\bin;例:C:\j2sdk1.4\bin;
服务器的安装:Tomcat 5.0
设置TOMCAT_HOME环境变量:Tomcat安装目录 例:C:\Tomcat 5.0;
(2)安装Tomcat5.0 安装时注意在选择Java虚拟机路径是一定要选择安装的JSDK的目录,然后再开始安装。
(3)安装完毕后,启动TOMCAT,然后再浏览器中输入http://localhost:8080时可以看见TOMCAT的欢迎页面,这时表示配置成功了。
7.2 软件调试
系统调试的目的是发现程序和系统中的错误并及时予以纠正。在网络订餐系统中用的调试方法也包括这些:
(1) 程序调试
包括语法调试和逻辑检查,测试数据除采用正常数据外,还应用一些异常资料,用来考验程序的正确性。
①用正常资料调试。
②用异常资料调试。
③用错误资料调试。
7.3 软件测试:
软件的测试是系统开发周期中一个十分重要的环节,其重要性体现在它是保证系统质量与可靠性的最后关口,是对整个系统开发过程的最终审查,如果错误不能在测试阶段被发现并纠正,就可能会造成不堪设想的后果。
在网上购物电子商务平台中,我们以黑盒测试为主,白盒测试为辅。对关键模块采用白盒测试。
测试结果:
★中文乱码问题,从数据库中取出的中文数据出现乱码。
★参数传递出错,无法传递数据。
★当大量用户同时对数据库进行访问时,效率低,有的用户访问失败。
主要的解决方法:
☆我使用如下方法来解决乱码问题:
request.getParameter(“choose”).getBytes(“8859_1”),“GB2312”
<%@ page contentType=“text/html;charset=GB2312”%>
☆对于各个模块接参数的格式进行了统一
☆本程序以中小型为基础,采用JDBC数据源进行连接数据库这就决定了本系统的先天缺陷。纯正的电子商务网站均采用连接池,出于技术难度大和资料缺乏放弃此最佳方案。

第八章 结束语
经过十个月的不懈努力,和指导老师的谆谆教导,以及同组同学的团结协作,充分利用大学四年所学的专业知识,通过大量阅读与设计相关的专业参考文献,我终于完成了本次毕业设计,已经基本上实现了网络订餐系统的各项功能。
在这次毕业设计过程中,我独立设计和实现了用户注册,用户登录,修改密码,留言板,菜品浏览等五个模块的全部功能,以及这几个模块的数据库设计。
通过这次毕业设计,我掌握了MYSQL 这种大型数据库的编程方法,掌握了JAVA语言和JSP技术。了解到电子商务的理论以及平台开发的模式,掌握了网络开发的方法与模式。对团队的协作,对软件开发方法和手段,有了一定的认识,丰富了我的软件开发的经验,提高了程序编写的水平,并加深理解了许多课程中、菜品本上学到的知识和理论。同时,通过编写毕业设计论文,我还基本掌握了软件文档的菜品写方法和菜品写格式。
本系统的缺陷也是明显的,如安全性,效率问题等等。由于时间,能力,国内JAVA,JSP技术资料有限等原因,有些功能实现的并不完美,在已经完成的程序中,也存在许多不尽人意的算法,也没有统一优化,系统有待进一步改善,而这些问题也让我充分认识到了软件开发的困难。
通过毕业设计,我学会了如何去了解一种新型的技术,去掌握一种技术。以及软件开发的基本流程。在学习过程中,我们遇到问题经常上网求助,去菜品店查询资料,扩大了自己的知识面。
总之,这次毕业设计为我今后继续学习、深造奠定了基础,我非常感谢各位老师、同学的支持与帮助。

第九章 附 录

9.1 致谢
在本次毕业设计过程中,得到了指导老师的指导与支持。在此特别感谢我的知道老师老师。指导老师的悉心指导和大力支持,在总体结构、功能的把握上给予了非常大的帮助,同时根我提供了非常优越的设计环境,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我顺利完成这次毕业设计起到了关键性的作用。
我还要感谢我的母校——XXX大学,以及在大学四年生活中给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。通过这次毕业设计我还明白了作为一名计算机专业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,为自己翻开辉煌的新篇章。

9.2 参考文献
[1]孙卫琴,李洪成.《Tomcat 与 Java Web 开发技术详解》.电子工业出版社,2003年6月:1-205
[2]BruceEckel.《Java编程思想》. 机械工业出版社,2003年10月:1-378
[3]FLANAGAN.《Java技术手册》. 中国电力出版社,2002年6月:1-465
[4]孙一林,彭波.《Java数据库编程实例》. 清华大学出版社,2002年8月:30-210
[5]Lee Anne Phillips.《巧学活用HTML4》.电子工业出版社,2004年8月:1-319
[6]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2003年9月:32-300
[7]耿祥义,张跃平.《JSP实用教程》. 清华大学出版社,2003年5月1日:1-354
[8]孙涌.《现代软件工程》.北京希望电子出版社,2003年8月:1-246
[9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月:3-460
[10]Brown等.《JSP编程指南(第二版)》. 电子工业出版社 ,2003年3月:1-268
[11]清宏计算机工作室.《JSP编程技巧》. 机械工业出版社, 2004年5月:1-410
[12]朱红,司光亚.《JSP Web编程指南》.电子工业出版社, 2001年9月:34-307
[13]赛奎春.《JSP工程应用与项目实践》. 机械工业出版社, 2002年8月:23-294

猜你喜欢

转载自blog.csdn.net/ambiguous__/article/details/130919540