1、东北石油大学本科生毕业设计(论文)摘 要二十一世纪是一个集数字化、网络化、信息化为特征的时代。在这个以网络为核心的社会里,越来越多的人接受了电子商务这种便捷、快速的交易形式,因而网上订餐的推出很快受到了大家的欢迎。本文介绍了一个网上订餐系统(ORRS: Online Restaurant Reservation System)的总体设计方案和开发过程。该系统分为前台和后台两个部分,前台部分主要是用户进行信息的浏览,订餐以及管理等,主要是面向用户的。而后台主要是管理人员对前台数据的维护和设置。整个系统实现了从用户订餐,菜品管理,用户管理,到订餐车实现,用户订单处理等一系列必要的功能,基本上能满足
2、网上订餐的需要。在系统开发设计中,采用了B/S(Browser/Server)结构,易于保证数据的一致性;采用SQL Sever2005作为后台数据库,使系统安全性能更高;采用当前流行的JSP(Java Server Pages)编程,用户界面更友好。关键词: 网上订餐系统;B/S;JSPAbstractThe 21st century is characterized by digitization, networking and information. In the society with the core of network, more and more people have a
3、ccepted the convenient and fast trade form of electronic commerce. Therefore, the online reservation is popular quickly.This paper presents the overall solution design and development process of an ORRS(Online Restaurant Reservation System). The whole system consists of two main parts: the front and
4、 back end. The front end includes of information browsing, ordering meal and information management, which are provided for users. The back end includes of maintaining data and system setup done by administrators. This system could finish the whole series of essential reservation task such as orderi
5、ng meal, dishes management, user management, shopping cart, and ordering forms management. So, basically it could meet the needs of online reservation.The B/S(Browser/Server) architecture was adopted when developing the system, so as to guarantee the consistency of the data. The SQL Sever 2005 was u
6、sed as the back end database to increase security. At last, the popular JSP(Java Server Pages) programming technology was used , thus making interface more friendly. Key Words: Online Restaurant Reservation System; Browser/Server; Java Server Pages目 录第1章 概 述11.1 课题的背景及意义11.2 课题分析1第2章 系统实现主要技术32.1 技术
7、方案选取32.2 相关语言及开发工具介绍4第3章 需求分析83.1 系统需求分析83.2 性能需求分析83.3 产品质量需求分析93.4 可行性分析9第4章 网上订餐系统总体设计114.1 系统结构设计114.2 系统流程分析124.3 系统数据库设计154.4 MVC模式18第5章 网上订餐详细设计及实现215.1 运行环境及配置215.2 系统前台模块实现235.3 系统后台模块实现28第6章 软件测试326.1 软件测试的目的和方法326.2 软件测试336.3 发现问题及解决33结 论34参考文献35致 谢36I第1章 概 述1.1 课题的背景及意义随着Internet的普及,越来越多
8、的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态信息,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等1。其中网上订餐系统是电子商务网站的一种,随着信息化时代的到来,人们对生活质量的追求不断提高,由于人们工作,学习的关系,常常无法正常吃饭,随着网络的普及,网上订餐业务在中国开始盛行,人们也通过网络订餐的方式获得自己需要的食物2。这样既节省了时间,也可以为广大用户提供更多的口味。该系统使用JSP(Java语言)和SQL Server2005数据库开发, 实现了网上订餐系统的动态管理,使得网上订餐的管理更加及时、高效,提高了工作效率。该管理系统具有一般网上订餐系统的
9、功能,从大的方面来讲主要包括餐饮管理,预定管理,用户管理等几个大的功能模块。系统基于B/S(Browser/Server,浏览器/客户端)模式实现,在 Myeclipse平台开发实现,主要实现对网上订餐的使用、需求、以及用户订餐的动态管理等。随着Internet/Intranet技术的兴起,将原本在单机或本地局域网上运行的数据库系统移植到因特网中,即开发基于B/S模式的新一代MIS(Management Information System,管理信息系统)系统,正成为技术发展的趋势。为了保证系统性能的高效性、可扩展性,以及达到数据共享和网络化管理的目的,本系统采用B/S体系结构进行设计开发。1
10、.2 课题分析该系统分为前台和后台两个部分,前台部分主要是用户进行资讯的浏览,以及订餐,管理等,主要是面向用户的。而后台主要是管理人员对前台数据的维护和设置,主要是面向管理人员的。网上订餐系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。该系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。对于本系统的不同使用者,其功能与业务逻辑是不尽相同的。对于普通用户而言,系统主要像用户展示一个美观的界面,用户在可以浏览各类资讯,查询餐饮信息,
11、订餐等。而管理员则需要在后台维护这些数据。第2章 系统实现主要技术2.1 技术方案选取2.1.1 开发语言随着互联网技术的不断发展,基于浏览器/服务器(Browser/Server 简称B/S)体系结构的应用程序得到了空前广泛的应用3。但是服务器之间的通讯,尤其是在不同平台上运行的服务器之间的通讯仍然不是一件容易的事情。因为大多数Internet应用程序都是以数据库为中心的,方便的访问多种数据源的能力也比以往任何时候都更加重要。JSP无疑可以轻松地实现这类功能,JSP技术是一种服务器端的HTML页面中嵌入JAVA代码的脚本语言,它比一般脚本语言的执行速度更快,由于JSP是基于JAVA语言的,所
12、以它可以运行在UNIX/LINUX和WINDOWS平台上,是一种难得的动态网页开发语言。在动态内容的解决问题中,还存在其他的解决方法,但是开发人员要掌握这些技术很难。例如,Java Servlets这样的技术就可以使得用Java语言编写交互式的应用程序的服务器端的代码变得更加简单。Java Servlets就是一个基于Java技术的运行在服务器端的程序(与Applet不同,后者运行在浏览器端)。开发人员编写出Servlet程序,用来接收来自Web浏览器的HTTP请求,动态地生成响应,然后发送包含HTML或XML文档到浏览器。但是使用这种方法,整个网页必须都在Java Servlet中制作。如果
13、开发人员或者Web管理人员想要调整页面的显示,就不得不从新编辑并编译Java Servlet程序。采用这种方法,编写带有动态内容的页面需要有很熟练的应用程序开发技巧和经验。很显然,一个简单的创建动态页面的解决方案要能解决以下的问题: 1. 能够在任何Web或应用程序服务器上运行2. 将应用程序逻辑和页面显示分离3. 能够快速地开发和测试4. 简化开发基于Web的交互式应用程序的过程Java Server Pages (JSP)满足这些要求,它整合了存在的Java编程环境提供支持的技术和工具,产生了一种新的、开发基于Web应用程序的方法,这个方法给予使用基于组件应用的逻辑页面的设计者提供了强大的
14、功能。2.1.2 开发模式选择JSP有两中开发模式JSP+JavaBeans和JSP+Servlet+JavaBeans,在模式一中,JSP页面独自响应请求并将处理结果返回客户4。所有的数据通过Bean来处理JSP实现页面的表现。模式一技术实现了页面的表现-和页面的商业逻辑相分离。大量使用模式一形式,常常会导致页面被嵌入大量的脚本语言或JAVA代码。当需要处理的商业逻辑很复杂时,这种情况会变得非常糟糕。大量的代码会使整个页面变得常复杂。对于前端界面设计人员来说,这简直不可想象。这种情况在大项目中最为常见,这也造成了代码的开发和维护出现困难,造成了不必要的资源浪费,在任何项目中,这样的模式总会导
15、致多多少少的定义不清的响应和项目管理的困难。 综上所诉,模式一不能满足大型项目的需要,但是可以较好的满足小型应用,在简单的应用中可以考虑模式一。模式二JSP+Servlet+JavaBeans中,Servlets技术是一种采用JAVA技术来实现CGI功能的一种术。Servlets技术是运行在WEB服务器上,用来生成WEB页面。Servlets技术非常实用于服务器端的处理和编程,并且Servlet会长期驻留在他们所处的位置。但是在实际的项目开发过程中,页面设计者可以方便地使用普通HTML工具来开发JSP页面,Servlet却更适合于后端开发者使用,开发Servlet需要的是JAVA集成开发环境,
16、也就是说Servlet技术更需要编程人员。 模式二技术结合了JSP和Servlet技术充分体现了两者的技术优点。在此模式中通过JSP来表现页面。通过Servlet来完成大量的事务处理。Servlet充当一个控制者的角色,并负责向客户发送请求。Servlet创建JSP所需要的Bean和对象,然后根据用户的请求行为,决定将哪个JSP页面发送给客户。从开发的观点,模式二具有更清晰的页面表现,清楚的开发者角色划分,可以充分利用开发小组的界面设计人员,这些优势在大型项目开发中表现的尤为突出,使用这一模式,可以充分发挥每个开发者各自的特长,界面设计人员可以充分发挥自己的表现力,设计出优美的界面表现形式,设
17、计人员可以充分发挥自己的商务处理思维,来实现项目中的业务处理。在大型项目中,模式二更被采用。但是,本系统开发只是一个小型的JSP应用,同时由于Servlet难于掌握,所以在本课题中采用了模式一开发,既JSP+JavaBean。2.2 相关语言及开发工具介绍2.2.1 JavaServer Pages(JSP)技术简介在开发JSP规范的过程中,Sun 公司与许许多多主要的Web服务器、应用服务器和开发工具供应商,还有各种各样富有经验的开发团体进行合作。最后找到了一种平衡了应用和页面开发的具有可移植性和易用性的开发方法,JSP技术特征在多个方面加速了动态Web页面的开发:1. 将内容的生成和显示进
18、行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容,这些内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格。生成内容的逻辑部分被封装在JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在Beans中,那么其他人,如Web管理人员和页面设计者,在编辑和使用JSP页面的时候,将不会影响到内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成客户端请求的内容,例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者其他文件,并且将结果以H
19、TML(或者XML)页面的形式发送回浏览器。这将有助于作者保护自己的代码,并且又保证任何基于HTML的Web浏览器的完全可用性.2. 强调可重用的组件 绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理问题。开发人员能够共享和交换执行普通操作的组件,或者发布这些组件使更多的使用者或者客户团体能够使用。3. 采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是容易使用的、同时与JSP相关的XML标识中进行动态内容
20、的生成时需要的5。通过开发定制化标识库,JSP技术是可扩展的。今后,第三方开发人员和其他人员可以将常用的功能创建到自己的标识库。这使得Web页面开发人员能够象使用熟悉的工具一样来使用标识来执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以便使用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用开发。由于JSP页面的内置脚本语言是基于Java编程语言的,并且所有的JSP页面都能被编译成为Java Servlet,JSP页面就具有Java技术的
21、所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的厂家将对JSP的支持添加到他们的产品中,我们可以选择不同的服务器和工具,因为更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE)6和Enterprise JavaBean技术整合时,JSP页面提了供企业级的扩展性能,这对于在虚拟企业中部署基于Web的应用是必需的。2.2.2 MyEclipse简介Eclipse最初是IBM的一个软件产品,前期投入了4000万美金。2001年11月,IBM宣布将其捐给开放源码组织Eclipse.org。目前
22、Eclipse的市场占有率已经超过了Borland公司的JBuilder,成为Java开发平台中的主流。Eclipse的设计思想是:一切皆为插件。它自身的核心是非常小的,其它所有的功能都以插件的形式附加到该核心上。Eclipse中三个最吸引人的地方:一是它创新性的图形API,即SWT/JFace,在此之前,我曾经用过Java 的AWT/SWING来开发Windows应用程序,AWT/SWING其界面客观地讲不够美观,而且界面响应速度比较慢;而SWT/JFace则大大改善了Java在这方面的能力。二是它的插件机制。三是利用它的插件机制开发的众多功能强大的插件。MyEclipse企业级工作平台(M
23、yEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSF、CSS、Javascript、SQL、Hibernate。2.2.3 JSP应用服务器Tomcat大多数人(大概29)都喜欢将Apache Tomcat当作JSP应用服务器使用。有人可能会说,它之所以受欢迎是因为这个服务器是免费和开放源代码的,但是真正的原因远不
24、止这些。Apache Tomcat能够受欢迎,不仅是工作性能非常好,还有没有初始的开发成本开销等有力的竞争因素,但这不是决定因素。Tomcat 结构非常合理,更由于Tomcat 是Apache 组织的产品,这个组织有着雄厚的技术更新力量,并且Tomcat6.0 很好的支持了JSP2.0 规范,因此有着很好的发展前景。Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司以及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaW
25、orld杂志的编辑选为2010年度最具创新的java产品,可见其在业界内的地位。Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:也处理Html页面,但是与Apache相比,它的处理静态Html的能力就不如Apache。JDK 是SUN 公司的JAVA应用程序和组件的开发环境,是编译、测试工具,也是提供JAVA程序的JAVA虚拟机平台,是调试和运行JSP 所不可缺少的工具。2.2.4数据库Mircrosoft SQL Server 2005SQL Server 2005是一个分布式的关系型数据库管理系统,具有客户/服务器体系结构。Mircrosoft SQL Ser
26、ver 2005是一个应用广泛的数据库管理系统,具有许多显著特点,例如,用户喜欢的易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性能价格比等。SQL Server 2005系统中,数据库的管理采取了先进的动态管理机制,数据库的大小可以随着数据量的变化而缩小或者扩大。另外,用户数据都是非常重要的和保密的,这些数据存储在Mircrosoft SQL Server 2005系统中有绝对的安全性保障,有完善的用户帐户策略和许可机制,只有经过授权的用户才能访问系统,并且执行相应的操作和访问允许访问的数据。未经授权的用户既不能执行相应的操作,也不
27、能访问数据库中的相应数据。SQL Server 2005系统具有强大的网上功能,可以在Internet上发布数据库中的数据。在Mircrosoft SQL Server 2005系统中,允许用户简单的使用一些向导和工具把数据库的数据发布到网络上,并且可以根据需要来调度修改已经发布的数据。第3章 网上订餐系统需求分析需求分析是程序设计中最关键的一个步骤,是其它步骤的基础7。其主要任务是“为了解决这个问题,目标系统必须做什么”。主要确定目标系统具有那些功能。在这个步骤里,程序员在用户那里搜集所有的对将要开发的系统的需求信息,并且把这些信息编写成为用户和程序员都可以认可的需求说明书。软件的需求分析是
28、软件开发前的第一个阶段,也是关系到软件开发成败的关键步骤,在整个软件开发的过程中,可以说这个阶段所要占用的时间是相当大的,如果需求分析做好了,那么在以后的软件设计过程当中,可以省去不少的时间。该阶段不是确定系统怎样的完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析阶段的工作是开发软件系统的重要基础。软件系统中15%的错误起源于错误的需求分析。因此,用相应的分析方法对目标系统提出一组要求之后,必须要严格验证这些需求的正确性。一般来说,应该从下述四个方面验证:一致性:所有的需求必须是一致的。任何一条需求不能和其它需求相互矛盾。完整性:需求必
29、须是完整的,规格说明书应该包括每一个客户所需要的功能或性能。现实性:指定的需求应该是用现有的硬件技术和软件技术基础上可以实现的。对硬件技术的进步可以做一些预测,对软件技术的进步则很难做出预测,只能从现实水平出发,判断需求的现实性。有效性:必须证明需求是正确有效的,确定能够解决客户方面所提出的问题。网上订餐系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。进货订单管理系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。3.1 性能需求
30、分析该系统在性能功能上应达到如下需求:1. 操作简单、界面友好: 完全控件式的页面布局,使得菜品,资讯,座位等信息的录入工作更简便,许多选项包括餐厅信息,桌位,包房信息等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,用户对菜品的预定及支付方式;2. 即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能;3. 系统运行应该快速、稳定、高效和可靠;4. 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。3.
31、2 产品质量需求分析表3-1 产品质量需求分析主要质量属性详细要求正确性按照需求正确执行任务,完成各个模块的相应要求。健壮性具有较高的容错能力和恢复能力。可靠性故障发生率每运行1000小时低于3次性能,效率软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请求。易用性易理解性:软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。安全性防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性其数据应能集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也不应进行什么数据同步.可扩展性能方便的进行二次开发,满足
32、对功能的扩充或提高并能提高相应的安全控制。兼容性不易与其他软件起冲突。可移植性可方便移植到其他系统环境中正常运行。.3.3 可行性分析随着经济的快速发展,B2C电子商务越来越受到人们的关注。网上订餐类网站,已经如雨后春笋般的出现在了个大城市。特别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑剔,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的菜品,品尝不同风格的菜品,网络订餐业务在中国有着极大的发展空间以及良好的背景。
33、而当代大学生,白领工作人士作为社会中的重要群体,他们对饮食的要求都在不断提高,饮食在他们生活中起着重要作用。因此,面向大学生和都市白领人士的网络订餐网站的设计有着良好的现实意义。此次毕业设计决定利用JSP和SQL技术设计网上订餐系统。JSP可以创建和运用动态、交互的WEB服务器应用程序。同时,JSP具有向跨平台跨服务器的优点。SQL Server 2005是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等。综合以上两点分析,开发网上订餐系统具有一定的现实意义,从技术上和经济上均是可行的。第4章 网上订餐系统总体设计4.1 系统结构设计网上订餐系统
34、的模型结构如下图所示:客户端浏览器Web层业务层数据访问层系统配置数据库客户端浏览器客户端浏览器图4-1 网上订餐系统模型结构图从前面的需求分析中得知,可以将功能分为前台和后台两类,因此模块也分为两大类:前台模块和后台模块。下图为系统模块总图:网上订餐管理系统前台模块后台模块在线聊天售出情况订餐管理菜品管理用户订餐菜品查询注册登录用户管理图4-2 系统模块总图4.2 系统流程分析4.2.1 前台业务流程分析1. 浏览与选择餐饮信息:用户进入网站即刻自动提供购物车,不需身份确认就可以在网站上随意浏览,登录系统后则可挑选餐饮(可增加、删除、修改购物车上餐饮的类型),网站提供餐饮信息列表,最先添加的
35、餐饮信息优先列表给用户作为选购时的参考;2. 判断:用户确定所购餐饮信息后,系统将判断该用户是否注册,如果是,则可直接填写订单;否则,提示用户登记注册;3. 提交订单:已选购的餐饮信息需填写订单细节;4. 注册:用户可在公司的网站上注册后提交申请;5. 确认:后台管理将实时得到用户的注册信息,通过电话及其他方式确认,当确认后,系统管理员可对该用户提交的预定信息进行审核;6. 送货与付款:网上的每一份订单都将实时存入后台数据库,后台操作人员通过电话及其他方式确认,确认后将及时实施审核该订单:向用户送货,货到付款,完成网上交易。流程图如下:用户登录系统在线聊天获得购物车浏览餐饮信息选择餐饮信息生成
36、订单N结束Y图4-3前台业务流程图4.2.2 后台业务流程分析1. 登录:管理员进入后台系统必须有自己的权限,如果是,则可以进入后台系统,对后台进行操作,否则不能登录;2. 后台管理:后台管理有几项功能,管理员可以对系统进行操作;3. 确认:管理员对系统进行修改后确认提交。流程图如下: 管理员登录系统后台管理结束图4-4 后台流程图4.2.3 数据流程分析该系统数据流程比较简单,管理员可以添加餐饮信息(包括菜品名等信息),资讯信息等,然而这些信息用户是可以浏览的,但是用户没有权限对这些信息进行修改,这些信息对于用户而言是单向的。对于预定信息,管理员可以查看订餐信息,销售的统计,用户的添加删除,
37、以及订单的查看、配送、删除。数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具8。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。系统的数据流图如下所示:用户管理员注册食品查看下订单订单查看订单删除食品删除销售统计查看用户删除用户添加食品查看食品添加用户信息表食品信息表订单信息表订单菜单表登 陆系 统图4-5 数据流图4.3 系统数据库设计4.3.1 数据分析Users(用户表)用户名密码权限orders(订单表)订餐人备注信息电话应收款地址发布Shop(订单菜单表)菜名数量单价所属图片单价菜名foodInfo (菜品表)总
38、价日期数量原料详细介绍1N11图4-6 E-R图4.3.2 数据库表设计系统关键数据表如下:其关系见E-R图1用户表(userInfo):用户登录是需要用户名和密码,所以用户数据表中必须包含用户名(userName)、密码(userPwd)两个信息,还有些其他的用户信息,比如userType指的是用户权限(管理员还是非管理员)。从功能上数据库表设计如表4-1。表 4-1 用户表列名数据类型长度uidint4unamevarchar50upassvarchar50powerint42菜品信息表(foodInfo):菜品信息表主要描述菜品信息,如:菜品ID号(foodId),此ID号为系统自动生成
39、;菜品名称(foodName);菜品价格(foodPrice);菜品原料(remark);图片信息(foodImages);菜品介绍(description);菜品库存(Storage);菜品售出数量(Sold)。菜品信息表详细描述如表4-2所示:表4-2菜品信息表列名数据类型长度foodIdint4foodNamevarchar50foodPrice float50remarkvarchar50foodImagesvarchar50descriptionvarchar7000Storageint50Soldint503订单表(foodOrderInfo): 订单表有一下描述信息。订单ID(o
40、rderId),订购人姓名(customerName),地址(address),邮编(zipCode),固定电话(telephone),移动电话(movphone),备注信息(notice),总价格(totalPrice),是否送出(isGive)等,具体描述如表4-3所示:表4-3订单表列名数据类型长度orderIdint4customerNamevarchar50addressvarchar50zipCodevarchar20telephonevarchar20movphonevarchar30noticetext16totalPricenumeric9isGiveint44订单菜单表(o
41、rderInfo)具体描述如表4-4所示:表4-4订单菜单表列名数据类型长度orderIdint50foodIdint50userIdint50foodNumint50foodValuefloat50totalValue计算50orderDatedatetime504.4 MVC模式MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层910。4.4.1 视图层视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XH
42、TML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 订餐系统的View层主要把Controller层的处理结果显示在客户端的浏览器上。这层用到了JSP,还用到了少许JavaScript技术。其中系统中的显示页面包括前台的登录页面,菜品显示页面,购物车页面,订餐单页面;以及后台的管理员的
43、各个控制页面。4.4.2 模型层模型(Model):就是业务流程/状态的处理以及业务规则的制定11。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的
44、设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。订餐系统中的模型层包括了对4个数据表的所有数据操作方法,包括了用户信息、食品信息、订单信息的数据处理,封装在了对应的JAVA类中。
45、下面的控制层中直接调用模型层相对应的方法就可以实现对数据的操作。4.4.3 控制层控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某
46、个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。Servlet是一种扩展Web服务器功能的技术,而且由于它是用Java编写的,所以能够访问整个JavaAPI库,包括用于访问企业数据库的HIBERNATE API12。Servlets用特定的Java解决方案替代了其它的Web服务器方编辑模式(如:CGI,ISAPI等),因而继承了Java的所有特性(跨平台、多线程、OO)。用来编写Servlets的Servlets API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性,也不象利用CGI程序等其他方式那样具有性能局限。Servlets业同样使用HTTP协议与客户端进行通信,Servlets最常用的子集是“Http Servlets”。 Java Servlets不是用户调用的应用程序,而是由实施该Servlet的Web应用程序中的Web容器根据客户端的HTTP请求来调用。当一个Servlet被调用时,Web容器通过接收Servlet的请求与Web服务器交互,并且把响应信息发送到Web服务器。第5章 网上订餐系统详细设计及实现5.1 开发环境及配置5.1.1 开发