1、四川城市职业学院毕业设计在线点餐系统的设计与实现学生姓名 王唐霞系部名称 信息工程系专业班级 软件技术学 号 2011302785指导教师 李力 张宇 周萍 四川城市职业学院教务处二 一三 年十一 月关于在线点餐系统的设计与实现的思考学生:王唐霞 指导教师:李力 张宇 周萍内容提要:在中国餐饮业的发展现状看,中国餐饮业当今的特点之一就是在线点餐服务发展迅速,随着互联网普及率的提高,以及互联网应用的深入,网上点餐这个课题已经提出,在线点餐服务已经陆续在北京、上海以及经济发达的一级城市开展,并得到餐饮消费者的欢迎。为了方便人们生活,提高人们的生活效率,本系统根据现实点餐方式虚拟于网络之上,使人们通
2、过网络就可以完成生活中必要的事情(饮食) 。系统的完成不仅可以基本实现客户点餐的功能,还能在此基础上提供更多的、更贴心的服务。信息技术的发展将更快的推动互联网的发展,点餐系统的重要性也将越显其强大的作用。关键词:餐饮业 点餐 功能 目录目录 .0第一章 关于在线点餐系统的设计与实现的思考 .211 开发背景 .212 开发设计思想 .213 开发目标 .2第二章开发工具和环境简介 .221 JSP 技术简介 .222 JSP 工作原理 .323 JSP 体系结构 .324 JSP 的特点 .325 SQL2000 数据库 .426 系统数据库连接 .4第三章 网络便民服务管理系统功能分析 .8
3、31 系统功能分析 .832 可行性研究 .833 需求分析 .934 系统总体结构图 .1035 系统 ER 图 .1136 数据流图 .11第四章 网络便民服务管理系统总体设计 .1341 网络订餐系统功能模块划分 .1342 网络便民服务的体系结构: .14第五章 数据库设计 .1551 数据库系统概述: .1552 数据库表设计: .15第六章 程序设计 .1861 程序说明 .1862 具体模块划分 .18第七章 软件安装与调试 .2171 软件的安装与配置 .2172 软件调试 .2173 软件测试: .21第八章 结束语 .23第九章 附 录 .2491 致谢 .2492 参考文
4、献 .24四川城市职业学院毕业设计任务书及开题报告 .25四川城市职业学院毕业设计指导与初评意见 .26四川城市职业学院毕业设计答辩记录表 .281第一章 关于在线点餐系统的设计与实现的思考1 1 开发背景本系统的设计目的是为了满足消费者只要通过互联网就可以足不出户的订购自己喜欢的菜品,改变传统商业交易,在互联网上进行交易,实现网上购买菜品。本论文主要涉及软件,数据库与网络技术等。涵盖知识面广,可有效地提高学生综合运用所学知识分析解决问题的能力,增强学生对事物的理解与掌握能力,培养学生掌握科学的研究方法,正确的设计思想,独立思考,勇于进取,探索创新,为今后进一步学习与工作奠定了良好的基础。1
5、2 开发设计思想本系统用 JSP 语言来编写网络订餐系统,数据库用 SQL2000 来连接系统,通过编写JavaServlet 来进行后台业务逻辑控制,即 JSP +JavaServlet+ SQL2000 三层模式完成整个设计工作。本系统全部基于 Internet 网络,以 JSP 语言对网站进行开发,注重用户与网站的交互性。因此在这样的背景下,针对当前 Internet 网络发展趋势来计网络订餐系统就成为了当今应用软件的首选体系结构。1 3 开发目标网上购物的优势在于选择面大、价格便宜、交易方便、节省时间和精力等。整个菜品市场一片繁荣。在中国,网上购物有发展的必要,也有发展的基础,发展网上
6、购物的各方面条件也日趋成熟,但是还存在一些问题,只有把问题解决好了,才能保证网上购物的蓬勃发展。第二章开发工具和环境简介2 1 JSP 技术简介JSP(Java Server Page 服务器网页)是从 1998 年开始出现的新技术。由 Sun 公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于 JavaServlet 以及整个 Java 体系的web 开发技术。在传统的网页 HTML 文件(*.htm,*.html)中加入脚本片段和 JSP 标记(Tag),构成 JSP 网页(*.jsp)。JSP 技术为创建显示动态生成内容的 web 页面提供了简便的方法。JSP 作为 Java
7、家族的一员,承袭了 Java 的特点,即跨平台的特性,也即一次编译,到处运行。在国外,己经大量使用 JSP 作为网络应用程序的开发工具,而在国内,尽管 JSP 还不是主流开发技术,但是由于 JSP 的强大优势,许多网站都已经准备转向 JSP,利用 JSP 来开发动态网站。22 2 JSP 工作原理JSP 是面向服务器的,因此支持任何浏览器。当 Web 服务器和 JSP 引擎遇到访问 JSP网页的请求时,JSP 引擎将请求对象发送给服务器端的相关组件,比如 JavaBean 组件、Servlet 或 EJB 等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组
8、件再将响应对象返回 JSP 引擎。 JSP 引擎将响应对象传递给 JSP页面,根据 JSP 页面的 HTML 格式完成数据编排,最后 Web 服务器和 JSP 引擎将格式化后的 JSP 页面以 HTML 格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器Web 服务器后台数据库的三层架构模式。因为 JSP 所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。2 3 JSP 体系结构JSP 网站开发标准给出了两种使用 JSP 的技术,可以归纳为模式一、模式二。模式一:JSP+JavaBeans 技术 在这种模式中,JSP 页面独自响应请求并将处理结果返回给客户。Bean 处理
9、所有数据访问,JSP 实现页面的表现,以实现内容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或 Java 代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所以模式一可用于小型应用,不能够满足大型应用的需要。模式二:JSP+Servlet+JavaBeans 技术 Servlet 技术是一种采用 Java 技术来实现 CGI 功能的一种技术,Servlet 技术非常适于服务器端的处理和编程,并且 Servlet 会长期驻留在内存。从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色
10、划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的 MVC 结构(Model/view/controller),其中 Servlet 对应 controller,处于控制者的位置,处理 HTTP 请求,负责生成 JSP 中使用的 Beans 组件或对象,并判断应将请求传递给哪个 JSP 等,JSP 对应view,负责生成最终的动态网页并返回给浏览器。而 JavaBeans 对应的是 Model,实现各个具体的应用逻辑与功能。2 4 JSP 的特点1. 简化的页面生成技术。JSP 页面用标准的 HTML 或 XML 命令来处理页面的格式化和布局设计,而用类似HTML、 XML 的
11、标记和 Java 语言编写的脚本程序生成页面内容。这使得页面形式与页面内容互相独立,非常有利于大型项目的分工合作。2. 与 Java 平台有机集成。JSP 技术是 Java 2 平台的重要组成部分, JSP 使用 Java 语言作为它的脚本语言。在JSP 页面中可以使用几乎所有的 Java 组件和 Java API,这就能充分发挥出 Java 语言的强大功能。使用 JSP 技术可以创建具有高度可伸缩性和可靠性的 Web 应用程序。3. 硬件平台和服务器无关性。JSP 作为 Java 家族的一员,秉承了 Java 技术的“一次编写,随处可用 (Write 3Once,Rum Anywhere)”
12、的特性,可以运行于大多数流行的操作系统平台及 Web 服务器,这种与服务器硬件和操作系统平台的无关性是 JSP 相对于其它动态网页技术最大的一个优点。4. 功能可扩展性。如同的 JSP 技术可以通过 ActiveX/COM 组件来扩展功能一样,JSP 可以通过 JavaBean和 EJB(Enterprise JavaBean)以及自定义的标记来扩展功能。JSP 可以通过 JDBC,与诸如 Oracle、SQL2000 这样的大型关系数据库进行连接。JSP 提供了一些隐含对象。这些隐含对象在 JSP 页面中可以直接引用,而不必首先声明。利用 JSP 提供的这些隐含对象,可以使脚本功能更加强大,
13、并且编程更加容易、方便。例如,利用 request 对象,可以很容易地接收用户在 HTML 表单中提交的信息。2 5 SQL2000 数据库SQL Server 是一个关系数据库管理系统它最初是由 Microsoft Sybase 和 Ashton-Tate 三家公司共同开发的于 1988 年推出了第一个 OS/2 版本在 Windows NT 推出后 Microsoft 与Sybase 在 SQL Server 的开发上就分道扬镳了 Microsoft 将 SQL Server 移植到 Windows NT系统上专注于开发推广 SQL Server 的 Windows NT 版本 Sybas
14、e 则较专注于 SQL Server 在 UNIX 操作系统上的应用在本书中介绍的是 Microsoft SQL Server 以后简称为SQL Server 或 MS SQL ServerSQL Server 2000 是 Microsoft 公司推出的 SQL Server 数据库管理系统的最新版本该版本继承了 SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行 Microsoft Windows 98 的膝上型电脑到运行 Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用2
15、6 系统数据库连接JDBC 技术是 Java DataBase Connectivity 的缩写,它是 SUN 公司提供的一种支持基本SQL 功能的通用的应用程序接口(Application Programming Interface)。它由一组用 Java 语言编写的类和接口组成。通过这些类和接口,程序开发人员可以在 Java 语言中方便地建立与数据库的链接,通过执行相应 SQL 语句,完成对不同数据库的访问。因此,开发人员使用JDBC API 可以不必编写一个应用程序来访问 Sybase 数据库,又另外编写一个应用程序去访问 Oracle 数据库,再写一个应用程序访问的 MYSQL2000
16、。不但如此,使用 Java 语言编写的应用程序可以在任何支持 Java 的平台上运行,不必在不同的平台上开发不同的应用程序。简单地说,JDBC 能完成下列三件事:1. 同一个数据库建立连接;2. 向数据库建立连接;3. 处理数据库返回的结果。JDBC 是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供一个统一的用户界面。说 JDBC 是一处低级的 API,是指它直接调用 SQL 命令,它比其他的一些数据库连接 API 要容易使用些,但它有同样可以作为更高级的,用户办面更友好的 API 或开发工具基础。4很多可视化的 Java 开发工具,如 Visual Age For Ja
17、va、Visual Caf、J+ 等都提供了基于 JDBC 的更面向用户的类和包,直接将关系数据库的表或视图映射为 Java 类,程序员通过可视化工具直接对 Java 对象进行操作,而真正需要的 SQL 调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种使用 JDBC API 的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的 SQL 命令以及 Java 程序。通过这处方式,用户可以完成对数据库的操作,即使他并不了解 SQL 语法以及 JDBC 编程。数据库访问的三层结构如图 5
18、.1 所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。图 1 使用中间件的数据库访问三层结构用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过 Web 服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问
19、模式。在三层模型中,命令将被发送到服务的”中间层” ,而”中间层”将 SQL 语句发送到数据库。数据库处理 SQL 语句并将结果返回”中间层” ,然后”中间层”将它们返回用户。其模型如图 5.2 所示。图 2 JDBC 的三层模型因为”中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层 API,这个 API 可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。JDBC 是 JAVA 应用程序与数据库的沟通桥梁。它提供了三项服务功能:一、与数据5库建立连接。二、将 SQL 语句传递给数据库。三、从数据库
20、取得 SQL 语句的执行结果。当 JDBC 要与数据库建立连接前,首先,它必须先取得连接此数据库的 JDBC 驱动程序,Class.forName()即是在执行此项工作。建立数据库连接的第一步骤就是将 JDBC 驱动程序的类载入至 JVM(Java VirtualL Machine)中,本系统中利用 java.lang.Class 类内的forName()静态函数依据指定的类名称,将 JDBC 驱动程序载入进来。完成载入驱动程序的步骤后,必须使用 java.sal.DriverManager 类所提供的 getConnection()静态函数,取得与数据库间的连接对象。此连接对象的类类型为 j
21、ava.sal.Connection,必须通过它才能将SQL 指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得 Statement 对象才能对数据库执行 SQL 指令。Statement 主要实现两个功能:执行SQL 语句以及取得执行结果。在 java.sql.Statement 的 sql 对象中执行查询或修改命令的函数后传回的是一个 ResultSet 对象,这个对象提供了一个存取 SQL 执行结果的管道,以便通过它将表格数据从数据库中取出。每个 Statement 对象只能产生一个 ResultSet 对象。数据库连接如图 5.3 所示:建立J D B
22、C - - O D B C 桥建 立数据库连接建 立是否成功 出错 处理否是执行S Q L 操作S Q L 是否出错 返 回错误信息返回执行结果是否图 3 数据库的连接处理数据库的连接处理具体实现如下:/建立 JDBCODBC 桥sun.jdbc.odbc.JdbcOdbcDriver;/桥建立不成功时的错误处理catch(ClassNotFoundException event)/建立与数据库的连接,并发送 SQL 查询语句,将结果保存到 rs 对象中Con=建立 JDBCODBC 桥Sql=SQL 查询语句执行查询6Rs=返回结果/SQL 出错处理catch(SQLException e1
23、)有了 JDBC,向各种关系数据发送 SQL 语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问 Sybase 数据库专门写一个程序,为访问 Oracle 数据库又专门写一个程序,或为访问 Informix 数据库又编写另一个程序等等,程序员只需用 JDBC API 写一个程序就够了,它可向相应数据库发送 SQL 调用。同时,将 Java 语言和 JDBC 结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是 Java 语言“编写一次,处处运行”的优势。Java 数据库连接体系结构是用于 Java 应用程序连接数据库的标准方法。J
24、DBC 对 Java程序员而言是 API,对实现与数据库连接的服务提供商而言是接口模型。作为 API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC 使用已有的 SQL 标准并支持与其它数据库连接标准,如 ODBC 之间的桥接。JDBC 实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。 Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java 应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。 JDBC 扩
25、展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库企业也可以用 JDBC 通过 Intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和 UNIX 等各种不同的操作系统) 。随着越来越多的程序员开始使用 Java 编程语言,对从 Java 中便捷地访问数据库的要求也在日益增加。 MIS 管理员们都喜欢 Java 和 JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信
26、息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务, Java 和 JDBC 可为外部客户提供获取信息更新的更好方法。简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。下列代码段给出了以上三步的基本示例: Connection con = DriverManager.getConnection(“jdbc:odbc:wombat“,“login“ , “password“) ; Statement stmt =
27、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 的数据库访问做了经典的总结。7第三章 网络便民服务管理系统功能分析为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库) 。模块是数据说明、可执行语句等程序设计对象的集合
28、,它是单独命名的而且可通过名字来访问。模块化就是把程序化分成若干个模块,每个模块完成一个子功能,把这些模块集起来组成一个整体,可以完成指定的满足问题的要求。3 1 系统功能分析首先对现有系统进行分析,现有系统是信息的重要来源。分析已有系统的功能和实现,从而确定新系统的设计目标和模型。由于条件有限,调研主要是在网上进行。即通过在网上已有的订餐网站注册成会员来了解其具备的功能。1、从用户的角度来看:用户通过在线注册成为网站的用户,可以获得以下功能:菜品浏览,购买菜品、注册、留言板等。2、从网站的角度看:(1)网站应该包含菜品信息(2)管理员管理:查看用户信息(3)菜品浏览32 可行性研究可行性研究
29、阶段的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题做出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有任何实际意义而引起的浪费,对新系统可行性的分析,要求用最小的代价在尽量短的时间内确定系统是否可行。1、技术可行性分析网络订餐系统的开发是一项复杂的系统工程。为了保证系统开发成功,必须采用工程化的系统开发方法,并研究出一些符合工程化标准的开发方法。这些方法旨在指导开发者进行工程化的系统开发,从而加快系统开发的速度,保证质量以及降低开发成本。工程化的系统开发方法确实在开发实践中取得了一定的效果。此次开发使用 JSP 作为开发语言,采用Serv
30、let 技术,Tomcat5.0 作为 Web 服务器。2、运行可行性分析:随着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和技能。随着 Internet 的发展,用户对于网络、WINDOWS 等环境下的软件使用比较熟悉,对于新鲜事物,用户表现出极大的兴趣和热情。 3、经济可行性分析:网络订餐系统给人们带来了方便,成为一种全新的商务模式。因此,不用出门就可以在家购物的新时尚已经到来,构建一个网络订餐系统在经济上是完全可行的。就本系统而言,随着电脑的普及,为学生在网络上进行购物提供有利的条件。而一个网络订餐系统可以为学生提供软件条件,这样学生便可以足不出户的买菜品了。商家可以从中获得利润,两全其美。