网上订餐系统last - 图文

更新时间:2024-05-05 05:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

东北石油大学本科生毕业设计(论文)

摘 要

二十一世纪是一个集数字化、网络化、信息化为特征的时代。在这个以网络为核心的社会里,越来越多的人接受了电子商务这种便捷、快速的交易形式,因而网上订餐的推出很快受到了大家的欢迎。

本文介绍了一个网上订餐系统(ORRS: Online Restaurant Reservation System)的总体设计方案和开发过程。该系统分为前台和后台两个部分,前台部分主要是用户进行信息的浏览,订餐以及管理等,主要是面向用户的。而后台主要是管理人员对前台数据的维护和设置。整个系统实现了从用户订餐,菜品管理,用户管理,到订餐车实现,用户订单处理等一系列必要的功能,基本上能满足网上订餐的需要。

在系统开发设计中,采用了B/S(Browser/Server)结构,易于保证数据的一致性;采用SQL Sever2005作为后台数据库,使系统安全性能更高;采用当前流行的JSP(Java Server Pages)编程,用户界面更友好。

关键词: 网上订餐系统;B/S;JSP

东北石油大学本科生毕业设计(论文)

Abstract

The 21st century is characterized by digitization, networking and information. In the society with the core of network, more and more people have accepted 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 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 ordering 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 used 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章 概 述................................................................................................................... 1

1.1 课题的背景及意义..................................................................................... 1 1.2 课题分析..................................................................................................... 1

第2章 系统实现主要技术 ............................................................................................ 3

2.1 技术方案选取............................................................................................. 3 2.2 相关语言及开发工具介绍......................................................................... 4

第3章 需求分析 ............................................................................................................ 8

3.1 系统需求分析............................................................................................. 8 3.2 性能需求分析............................................................................................. 8 3.3 产品质量需求分析..................................................................................... 9 3.4 可行性分析................................................................................................. 9

第4章 网上订餐系统总体设计 .................................................................................. 11

4.1 系统结构设计........................................................................................... 11 4.2 系统流程分析........................................................................................... 12 4.3 系统数据库设计....................................................................................... 15 4.4 MVC模式.................................................................................................. 18

第5章 网上订餐详细设计及实现 .............................................................................. 21

5.1 运行环境及配置....................................................................................... 21 5.2 系统前台模块实现................................................................................... 23 5.3 系统后台模块实现................................................................................... 28

第6章 软件测试 .......................................................................................................... 32

6.1 软件测试的目的和方法........................................................................... 32 6.2 软件测试................................................................................................... 33 6.3 发现问题及解决....................................................................................... 33

结 论............................................................................................................................... 34 参考文献......................................................................................................................... 35 致 谢............................................................................................................................... 36

I

东北石油大学本科生毕业设计(论文)

第1章 概 述

1.1 课题的背景及意义

随着Internet的普及,越来越多的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态信息,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。

[1]

其中网上订餐系统是电子商务网站的一种,随着信息化时代的到来,人们对生活质量的追求不断提高,由于人们工作,学习的关系,常常无法正常吃饭,随着网络的普及,网上订餐业务在中国开始盛行,人们也通过网络订餐的方式获得自己需要的食物。这样既节省了时间,也可以为广大用户提供更多的口味。

[2]

该系统使用JSP(Java语言)和SQL Server2005数据库开发, 实现了网上订餐系统的动态管理,使得网上订餐的管理更加及时、高效,提高了工作效率。该管理系统具有一般网上订餐系统的功能,从大的方面来讲主要包括餐饮管理,预定管理,用户管理等几个大的功能模块。

系统基于B/S(Browser/Server,浏览器/客户端)模式实现,在 Myeclipse平台开发实现,主要实现对网上订餐的使用、需求、以及用户订餐的动态管理等。随着Internet/Intranet技术的兴起,将原本在单机或本地局域网上运行的数据库系统移植到因特网中,即开发基于B/S模式的新一代MIS(Management Information System,管理信息系统)系统,正成为技术发展的趋势。为了保证系统性能的高效性、可扩展性,以及达到数据共享和网络化管理的目的,本系统采用B/S体系结构进行设计开发。

1.2 课题分析

该系统分为前台和后台两个部分,前台部分主要是用户进行资讯的浏览,以及订餐,管理等,主要是面向用户的。而后台主要是管理人员对前台数据的维护和设置,主要是面向管理人员的。网上订餐系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。该系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。

1

东北石油大学本科生毕业设计(论文)

对于本系统的不同使用者,其功能与业务逻辑是不尽相同的。对于普通用户而言,系统主要像用户展示一个美观的界面,用户在可以浏览各类资讯,查询餐饮信息,订餐等。而管理员则需要在后台维护这些数据。

2

东北石油大学本科生毕业设计(论文)

第2章 系统实现主要技术

2.1 技术方案选取

2.1.1 开发语言

随着互联网技术的不断发展,基于浏览器/服务器(Browser/Server 简称B/S)体系结构的应用程序得到了空前广泛的应用。但是服务器之间的通讯,尤其是

[3]

在不同平台上运行的服务器之间的通讯仍然不是一件容易的事情。因为大多数Internet应用程序都是以数据库为中心的,方便的访问多种数据源的能力也比以往任何时候都更加重要。

JSP无疑可以轻松地实现这类功能,JSP技术是一种服务器端的HTML页面中嵌入JAVA代码的脚本语言,它比一般脚本语言的执行速度更快,由于JSP是基于JAVA语言的,所以它可以运行在UNIX/LINUX和WINDOWS平台上,是一种难得的动态网页开发语言。

在动态内容的解决问题中,还存在其他的解决方法,但是开发人员要掌握这些技术很难。例如,Java Servlets这样的技术就可以使得用Java语言编写交互式的应用程序的服务器端的代码变得更加简单。Java Servlets就是一个基于Java技术的运行在服务器端的程序(与Applet不同,后者运行在浏览器端)。开发人员编写出Servlet程序,用来接收来自Web浏览器的HTTP请求,动态地生成响应,然后发送包含HTML或XML文档到浏览器。

但是使用这种方法,整个网页必须都在Java Servlet中制作。如果开发人员或者Web管理人员想要调整页面的显示,就不得不从新编辑并编译Java Servlet程序。采用这种方法,编写带有动态内容的页面需要有很熟练的应用程序开发技巧和经验。很显然,一个简单的创建动态页面的解决方案要能解决以下的问题:

1. 能够在任何Web或应用程序服务器上运行 2. 将应用程序逻辑和页面显示分离 3. 能够快速地开发和测试

4. 简化开发基于Web的交互式应用程序的过程

Java Server Pages (JSP)满足这些要求,它整合了存在的Java编程环境提供支持的技术和工具,产生了一种新的、开发基于Web应用程序的方法,这个方法给予使用基于组件应用的逻辑页面的设计者提供了强大的功能。

3

东北石油大学本科生毕业设计(论文)

2.1.2 开发模式选择

JSP有两中开发模式JSP+JavaBeans和JSP+Servlet+JavaBeans,在模式一中,JSP页面独自响应请求并将处理结果返回客户。所有的数据通过Bean来处理JSP实现

[4]

页面的表现。模式一技术实现了页面的表现--和页面的商业逻辑相分离。大量使用模式一形式,常常会导致页面被嵌入大量的脚本语言或JAVA代码。当需要处理的商业逻辑很复杂时,这种情况会变得非常糟糕。大量的代码会使整个页面变得常复杂。对于前端界面设计人员来说,这简直不可想象。这种情况在大项目中最为常见,这也造成了代码的开发和维护出现困难,造成了不必要的资源浪费,在任何项目中,这样的模式总会导致多多少少的定义不清的响应和项目管理的困难。

综上所诉,模式一不能满足大型项目的需要,但是可以较好的满足小型应用,在简单的应用中可以考虑模式一。

模式二JSP+Servlet+JavaBeans中,Servlets技术是一种采用JAVA技术来实现CGI功能的一种术。Servlets技术是运行在WEB服务器上,用来生成WEB页面。Servlets技术非常实用于服务器端的处理和编程,并且Servlet会长期驻留在他们所处的位置。但是在实际的项目开发过程中,页面设计者可以方便地使用普通HTML工具来开发JSP页面,Servlet却更适合于后端开发者使用,开发Servlet需要的是JAVA集成开发环境,也就是说Servlet技术更需要编程人员。

模式二技术结合了JSP和Servlet技术充分体现了两者的技术优点。在此模式中通过JSP来表现页面。通过Servlet来完成大量的事务处理。Servlet充当一个控制者的角色,并负责向客户发送请求。Servlet创建JSP所需要的Bean和对象,然后根据用户的请求行为,决定将哪个JSP页面发送给客户。从开发的观点,模式二具有更清晰的页面表现,清楚的开发者角色划分,可以充分利用开发小组的界面设计人员,这些优势在大型项目开发中表现的尤为突出,使用这一模式,可以充分发挥每个开发者各自的特长,界面设计人员可以充分发挥自己的表现力,设计出优美的界面表现形式,设计人员可以充分发挥自己的商务处理思维,来实现项目中的业务处理。在大型项目中,模式二更被采用。

但是,本系统开发只是一个小型的JSP应用,同时由于Servlet难于掌握,所以在本课题中采用了模式一开发,既JSP+JavaBean。

2.2 相关语言及开发工具介绍

2.2.1 JavaServer Pages(JSP)技术简介

在开发JSP规范的过程中,Sun 公司与许许多多主要的Web服务器、应用服务器和开发工具供应商,还有各种各样富有经验的开发团体进行合作。最后找到了

4

东北石油大学本科生毕业设计(论文)

一种平衡了应用和页面开发的具有可移植性和易用性的开发方法,JSP技术特征在多个方面加速了动态Web页面的开发:

1. 将内容的生成和显示进行分离

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容,这些内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格。生成内容的逻辑部分被封装在JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在Beans中,那么其他人,如Web管理人员和页面设计者,在编辑和使用JSP页面的时候,将不会影响到内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成客户端请求的内容,例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者其他文件,并且将结果以HTML(或者XML)页面的形式发送回浏览器。这将有助于作者保护自己的代码,并且又保证任何基于HTML的Web浏览器的完全可用性.

2. 强调可重用的组件

绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理问题。开发人员能够共享和交换执行普通操作的组件,或者发布这些组件使更多的使用者或者客户团体能够使用。

3. 采用标识简化页面开发

Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是容易使用的、同时与JSP相关的XML标识中进行动态内容的生成时需要的。通过开发定制化标识库,JSP技术是可扩展的。今后,第

[5]

三方开发人员和其他人员可以将常用的功能创建到自己的标识库。这使得Web页面开发人员能够象使用熟悉的工具一样来使用标识来执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以便使用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用开发。由于JSP页面的内置脚本语言是基于Java编程语言的,并且所有的JSP页面都能被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的厂家将对JSP的支持添加到他们的产品中,我们可以选择不同的服务器和工具,因为更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE)和Enterprise JavaBean技术整合时,JSP

[6]

页面提了供企业级的扩展性能,这对于在虚拟企业中部署基于Web的应用是必需的。

5

东北石油大学本科生毕业设计(论文)

2.2.2 MyEclipse简介

Eclipse最初是IBM的一个软件产品,前期投入了4000万美金。2001年11月,IBM宣布将其捐给开放源码组织Eclipse.org。目前Eclipse的市场占有率已经超过了Borland公司的JBuilder,成为Java开发平台中的主流。

Eclipse的设计思想是:一切皆为插件。它自身的核心是非常小的,其它所有的功能都以插件的形式附加到该核心上。

Eclipse中三个最吸引人的地方:一是它创新性的图形API,即SWT/JFace,在此之前,我曾经用过Java 的AWT/SWING来开发Windows应用程序,AWT/SWING其界面客观地讲不够美观,而且界面响应速度比较慢;而SWT/JFace则大大改善了Java在这方面的能力。二是它的插件机制。三是利用它的插件机制开发的众多功能强大的插件。

MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSF、CSS、Javascript、SQL、Hibernate。

2.2.3 JSP应用服务器Tomcat

大多数人(大概29%)都喜欢将Apache Tomcat当作JSP应用服务器使用。有人可能会说,它之所以受欢迎是因为这个服务器是免费和开放源代码的,但是真正的原因远不止这些。Apache Tomcat能够受欢迎,不仅是工作性能非常好,还有没有初始的开发成本开销等有力的竞争因素,但这不是决定因素。Tomcat 结构非常合理,更由于Tomcat 是Apache 组织的产品,这个组织有着雄厚的技术更新力量,并且Tomcat6.0 很好的支持了JSP2.0 规范,因此有着很好的发展前景。

Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司以及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2010年度最具创新的java产品,可见其在业界内的地位。

Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:也处理Html页面,但是与Apache相比,它的处理静态Html的能力就不如Apache。

JDK 是SUN 公司的JAVA应用程序和组件的开发环境,是编译、测试工具,也是提供JAVA程序的JAVA虚拟机平台,是调试和运行JSP 所不可缺少的工具。

6

东北石油大学本科生毕业设计(论文)

2.2.4数据库Mircrosoft SQL Server 2005

SQL Server 2005是一个分布式的关系型数据库管理系统,具有客户/服务器体系结构。Mircrosoft SQL Server 2005是一个应用广泛的数据库管理系统,具有许多显著特点,例如,用户喜欢的易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性能价格比等。

SQL Server 2005系统中,数据库的管理采取了先进的动态管理机制,数据库的大小可以随着数据量的变化而缩小或者扩大。另外,用户数据都是非常重要的和保密的,这些数据存储在Mircrosoft SQL Server 2005系统中有绝对的安全性保障,有完善的用户帐户策略和许可机制,只有经过授权的用户才能访问系统,并且执行相应的操作和访问允许访问的数据。未经授权的用户既不能执行相应的操作,也不能访问数据库中的相应数据。

SQL Server 2005系统具有强大的网上功能,可以在Internet上发布数据库中的数据。在Mircrosoft SQL Server 2005系统中,允许用户简单的使用一些向导和工具把数据库的数据发布到网络上,并且可以根据需要来调度修改已经发布的数据。

7

东北石油大学本科生毕业设计(论文)

第3章 网上订餐系统需求分析

需求分析是程序设计中最关键的一个步骤,是其它步骤的基础。其主要任

[7]

务是“为了解决这个问题,目标系统必须做什么”。主要确定目标系统具有那些功能。在这个步骤里,程序员在用户那里搜集所有的对将要开发的系统的需求信息,并且把这些信息编写成为用户和程序员都可以认可的需求说明书。

软件的需求分析是软件开发前的第一个阶段,也是关系到软件开发成败的关键步骤,在整个软件开发的过程中,可以说这个阶段所要占用的时间是相当大的,如果需求分析做好了,那么在以后的软件设计过程当中,可以省去不少的时间。该阶段不是确定系统怎样的完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

需求分析阶段的工作是开发软件系统的重要基础。软件系统中15%的错误起源于错误的需求分析。因此,用相应的分析方法对目标系统提出一组要求之后,必须要严格验证这些需求的正确性。

一般来说,应该从下述四个方面验证:

一致性:所有的需求必须是一致的。任何一条需求不能和其它需求相互矛盾。 完整性:需求必须是完整的,规格说明书应该包括每一个客户所需要的功能或性能。

现实性:指定的需求应该是用现有的硬件技术和软件技术基础上可以实现的。对硬件技术的进步可以做一些预测,对软件技术的进步则很难做出预测,只能从现实水平出发,判断需求的现实性。

有效性:必须证明需求是正确有效的,确定能够解决客户方面所提出的问题。 网上订餐系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。进货订单管理系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。

3.1 性能需求分析

该系统在性能功能上应达到如下需求:

1. 操作简单、界面友好: 完全控件式的页面布局,使得菜品,资讯,座位等信息的录入工作更简便,许多选项包括餐厅信息,桌位,包房信息等只需要点击

8

东北石油大学本科生毕业设计(论文)

鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,用户对菜品的预定及支付方式;

2. 即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能;

3. 系统运行应该快速、稳定、高效和可靠;

4. 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。

3.2 产品质量需求分析

表3-1 产品质量需求分析

主要质量属性 正确性 健壮性 可靠性 性能,效率 详细要求 按照需求正确执行任务,完成各个模块的相应要求。 具有较高的容错能力和恢复能力。 故障发生率每运行1000小时低于3次 软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请求。 易理解性:软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。 防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件安全性 属性其数据应能集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也不应进行什么数据同步. 可扩展性 兼容性 可移植性 ….. 易用性 能方便的进行二次开发,满足对功能的扩充或提高并能提高相应的安全控制。 不易与其他软件起冲突。 可方便移植到其他系统环境中正常运行。 .....

3.3 可行性分析

随着经济的快速发展,B2C电子商务越来越受到人们的关注。网上订餐类网站,已经如雨后春笋般的出现在了个大城市。特别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越

9

东北石油大学本科生毕业设计(论文)

挑剔,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的菜品,品尝不同风格的菜品,网络订餐业务在中国有着极大的发展空间以及良好的背景。而当代大学生,白领工作人士作为社会中的重要群体,他们对饮食的要求都在不断提高,饮食在他们生活中起着重要作用。因此,面向大学生和都市白领人士的网络订餐网站的设计有着良好的现实意义。

此次毕业设计决定利用JSP和SQL技术设计网上订餐系统。JSP可以创建和运用动态、交互的WEB服务器应用程序。同时,JSP具有向跨平台跨服务器的优点。SQL Server 2005是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等。

综合以上两点分析,开发网上订餐系统具有一定的现实意义,从技术上和经济上均是可行的。

10

东北石油大学本科生毕业设计(论文)

第4章 网上订餐系统总体设计

4.1 系统结构设计

网上订餐系统的模型结构如下图所示:

Web客户端 浏览器 数 据库 业务层 客户端 浏览器 层 数据访问层 客户端 浏览器 系统配置 图4-1 网上订餐系统模型结构图

从前面的需求分析中得知,可以将功能分为前台和后台两类,因此模块也分为两大类:前台模块和后台模块。

下图为系统模块总图:

11

东北石油大学本科生毕业设计(论文)

网上订餐管理系统 前台模块 后台模块 注册登录 菜品查询 用户订餐 在线聊天 图4-2 系统模块总图

菜品管理 订餐管理 售出用户管理 情况

4.2 系统流程分析

4.2.1 前台业务流程分析

1. 浏览与选择餐饮信息:用户进入网站即刻自动提供购物车,不需身份确认就可以在网站上随意浏览,登录系统后则可挑选餐饮(可增加、删除、修改购物车上餐饮的类型),网站提供餐饮信息列表,最先添加的餐饮信息优先列表给用户作为选购时的参考;

2. 判断:用户确定所购餐饮信息后,系统将判断该用户是否注册,如果是,则可直接填写订单;否则,提示用户登记注册; 3. 提交订单:已选购的餐饮信息需填写订单细节; 4. 注册:用户可在公司的网站上注册后提交申请;

5. 确认:后台管理将实时得到用户的注册信息,通过电话及其他方式确认,当确认后,系统管理员可对该用户提交的预定信息进行审核;

6. 送货与付款:网上的每一份订单都将实时存入后台数据库,后台操作人员通过电话及其他方式确认,确认后将及时实施审核该订单:向用户送货,货到付款,完成网上交易。

流程图如下:

12

东北石油大学本科生毕业设计(论文)

表4-3订单表

列名 orderId customerName address zipCode telephone movphone notice totalPrice isGive 数据类型 int varchar varchar varchar varchar varchar text numeric int 长度 4 50 50 20 20 30 16 9 4

4.订单菜单表(orderInfo)具体描述如表4-4所示:

表4-4订单菜单表

列名 orderId foodId userId foodNum foodValue totalValue orderDate 数据类型 int int int int float 计算 datetime 长度 50 50 50 50 50 50 50 4.4 MVC模式

MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层

[9][10]

18

东北石油大学本科生毕业设计(论文)

4.4.1 视图层

视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。

订餐系统的View层主要把Controller层的处理结果显示在客户端的浏览器上。这层用到了JSP,还用到了少许JavaScript技术。其中系统中的显示页面包括前台的登录页面,菜品显示页面,购物车页面,订餐单页面;以及后台的管理员的各个控制页面。

4.4.2 模型层

模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的

[11]

处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。

业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。

订餐系统中的模型层包括了对4个数据表的所有数据操作方法,包括了用户信息、食品信息、订单信息的数据处理,封装在了对应的JAVA类中。下面的控制层中直接调用模型层相对应的方法就可以实现对数据的操作。

19

东北石油大学本科生毕业设计(论文)

4.4.3 控制层

控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。

模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。

Servlet是一种扩展Web服务器功能的技术,而且由于它是用Java编写的,所以能够访问整个JavaAPI库,包括用于访问企业数据库的HIBERNATE API。Servlets用特定的Java解决方案替代了其它的Web服务器方编辑模式(如:CGI,ISAPI等),

[12]

因而继承了Java的所有特性(跨平台、多线程、OO)。用来编写Servlets的Servlets API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性,也不象利用CGI程序等其他方式那样具有性能局限。Servlets业同样使用HTTP协议与客户端进行通信,Servlets最常用的子集是“Http Servlets”。 Java Servlets不是用户调用的应用程序,而是由实施该Servlet的Web应用程序中的Web容器根据客户端的HTTP请求来调用。当一个Servlet被调用时,Web容器通过接收Servlet的请求与Web服务器交互,并且把响应信息发送到Web服务器。

20

东北石油大学本科生毕业设计(论文)

第5章 网上订餐系统详细设计及实现

5.1 开发环境及配置

5.1.1 开发环境

服务器端: Tomcat

操作系统: Windows XP操作系统 数据库: Microsoft SQL Server 2005 网络通信协议: TCP/IP

支持软件: Adobe Dreamweaver,MyEclipse

5.1.2 JDK配置

JDK(Java Development Kit )是一切java应用程序的基础,可以说,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class。

安装好JDK后,还需要在环境变量中进行对应的配置。主要进行一下配置: 1、设置JAVA_HOME环境变量

JAVA_HOME的值为JDK安装的目录,例如: C:\\ jdk1.6.0_14

2、设置CLASSPATH环境变量

CLASSPATH的值表示搜索Java类的路径,例如:

.;C:\\ jdk1.6.0_14\\bin;D:\\jdk1.6.0_14\\lib\\dt.jar;D:\\ jdk1.6.0_14\\lib\\tools.jar 3、更新PATH环境变量

PATH变量是系统搜索可执行程序的路径,例如: C:\\ jdk1.6.0_14\\bin;

5.1.3 MyEclipse8.0安装

使用MyEclipse8.0版本。MyEclipse的安装:首先安装 ECLIPSE 到“D:\\eclipse”路径下,按照默认的安装配置,点击“下一步”完成安装,之后安装 MYECLIPSE ,按照默认配置点击“下一步” ,选择“D:\\eclipse”路径,点击“下一步” ,按照默认配置点击“下一步” ,完成MYECLIPSE安装后打开MYECLIPSE,选择工程需要存放的路径(随意)后进入MyEclipse操作平台上。

21

东北石油大学本科生毕业设计(论文)

另外,还要载入相应的jar包,如:Hibernate-lib,Jdbc-lib,Struts-lib等包。

5.1.4 Tomcat配置

1. 一定要有msbase.jar,mssqlserver.jar,msutil.jar包,并且放到Tomcat/common/lib下。

2. 到Tomcat/conf里server.xml文件修改配置,设置Tomca\\webapps的保存JSP文件的目录,目录名为Res,则在文件加入以下语句增加一个虚拟目录:

4. 数据库密码验证配置,找到username将其间的参数设置为数据库的用户名,例如sa。找到password间参数设置为数据库密码。本系统中数据库设置用户名为sa,密码为weizheng。

5. 数据库url设置,找到url间参数设置为下面的格式:

jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Res;user=sa; password=weizheng;

数据库名为Res,用户名为sa,密码为weizheng,其中127.0.0.1为当前用户使用IP地址,端口为1433。

22

东北石油大学本科生毕业设计(论文)

5.2 系统前台模块实现

图5-1 网上订餐系统主页

5.2.1 用户登录

主界面的左侧为用户登录区:登录/注册/注册模块,会员登录到会员的订餐空间,或者新用户注册。会员登录成功跳到个人订餐页面,失败则重置,管理员登录成功跳到后台管理,注册则跳右侧页面跳到注册页面,注销则是用户登录后注销登录所有信息。

23

东北石油大学本科生毕业设计(论文)

5.2.2 用户注册

图5-2 注册页面

进入到注册页面,就可以进行注册了,用户名必须是合法的输入,密码和确认密码必须一致,否则系统提示错误。

5.2.3 用户订餐

图5-3 用户订餐页面

24

东北石油大学本科生毕业设计(论文)

用户登录过后便可以订餐,每个菜都有其详细介绍,点击订购,就把该菜放入购物车中,点击详情就可以查看菜的详情。

5.2.4 购物车

图5-4 购物车图

点击订购物品就会进入购物车中,在购物车中可以对物品进行删除,清空,结账等操作以及菜品数量,价格统计。我是用javaBean创建购物车对象,其中编写方法来实现对购物车的功能。购物车实现代码如下:

package com.endity; import java.util.*; public class ShopCart {

private int totalCount; private Map map; public ShopCart() { }

//向购物车中加入食品信息 public void addFood(FoodInfo food)

totalCount=0; map=new HashMap();

25

东北石油大学本科生毕业设计(论文)

{

ShopCartItemitem=(ShopCartItem)map.get(new Integer(food.getFoodId())); }

//向购物车中删除某个食品信息 public void removeFood(int foodId) { }

public int getTotalCount() { }

//计算购物车中菜品总价格 public float getTotalPrice() {

Collection col=map.values(); float totalPrice=0; Iterator it=col.iterator(); while(it.hasNext()) {

ShopCartItem item=(ShopCartItem)it.next(); return totalCount;

ShopCartItem item=(ShopCartItem)map.get(new Integer(foodId)); item.delFoodCount(); if(item.getCount()<=0) { }

totalCount--;

map.remove(new Integer(foodId)); if(item == null) { } else { }

totalCount++;

item.addFoodCount();

map.put(new Integer(food.getFoodId()), new ShopCartItem(food));

26

东北石油大学本科生毕业设计(论文)

}

}

}

FoodInfo food=item.getFood();

totalPrice+=food.getFoodPrice()*item.getCount();

return totalPrice;

public Collection getAllFood() { }

//清空购物车中所有菜品 public void clearCart() { }

map.clear(); totalCount=0; return map.values();

5.2.5 订单

图5-5 订单

当订餐结束,选择购物车的结账,就可以跳转到订单界面。上面有订餐人的详细信息,生成订单。

27

东北石油大学本科生毕业设计(论文)

5.2.6 聊天页面

图5-6 聊天页面

此页面用户之间可以相互聊天,右边还有在线人数统计和在线用户的ID。

5.3 系统后台模块实现

5.3.1 管理员功能

图5-7 管理员功能

28

东北石油大学本科生毕业设计(论文)

5.3.2 商品显示

图5-8 商品显示截图

这里显示出所有的商品可以对他们进行更新和删除操作。

5.3.3 商品添加

图5-9 商品添加演示

29

东北石油大学本科生毕业设计(论文)

这里是管理员对商品进行添加,可以插入图片,调用了上传下载组件SmartUpload。

5.3.4 销售统计

图5-10 商品销售统计图

这里是管理员对销售的情况进行的系统的统计,显示出商品的库存和售出情况。

5.3.5 用户管理

图5-11 管理员直接添加会员或者管理员

30

东北石油大学本科生毕业设计(论文)

图5-12用户查看

这里是管理员对用户的查看和添加功能。

5.3.6 订单管理

图5-13 订单管理

管理员可以对订单进行查看、删除、和派送等操作,管理员可以看到新的订单,是否已经派送,还有订单的具体信息。管理员更加方便对自己的经营情况进行统计。

31

东北石油大学本科生毕业设计(论文)

第6章 系统测试

6.1 系统测试的目的和方法

6.1.1 系统测试的目的

Grenford J.Myers就软件测试目的提出以下观点: 1. 测试是程序的执行过程,目的在于发现错误; 2. 一个好的测试用例在于能发现至今未发现的错误; 3. 一个成功的测试是发现了至今未发现的错误的测试。

测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。

[13]

如果成功地实施了测试,就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符。此外,实施测试收集到的测试结果数据为可靠性分析提供了依据。

6.1.2 系统测试的方法

白盒测试与黑盒测试 1.白盒测试

也叫玻璃盒测试、结构测试或逻辑驱动测试。对软件的过程性细节做细致的检查。这一方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,来设计或选择测试用例,对程序所有逻辑路径进行测试。

白盒测试是在程序内部进行,主要用于完成软件内部操作的验证。 2.黑盒测试(Black Box Testing)

也叫功能测试或数据驱动测试 ,被测软件看作一个不透明的黑盒子,在软件接口处进行,完成功能的验证。

黑盒测试完全不考虑程序内部的逻辑结构和内部特性 。

32

东北石油大学本科生毕业设计(论文)

6.2 网上订餐系统的测试

我用的是黑盒测试法,测试步骤如下图:

1. 用户注册、 登录 2. 用户在线订餐 3. 用户完成订单 5. 4. 管理员登录 结束 管理员查看、修改订单

图6-1 测试步骤图

6.3 发现的问题及解决方法

在测试中,很多汉字都是问号,不能正常显示,现有的大部分Java应用服务器都是在英语国家开发出来的,由于缺乏大字符集(中文、日文、韩文等)的应用环境,这些应用服务器在处理HTTP请求参数时都存在一些中文处理的问题。

解决这一问题的传统做法是编写额外的代码来完成字符集的转换: gb2312解决JSP中文乱码问题 一般说来在每个页面的开始处,加入:

<%@pagelanguage=\=\

<%request.setCharacterEncoding(\

charset= gb2312的作用是指定JSP向客户端输出的编码方式为“gb2312”; pageEncoding=\,为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效;

request.setCharacterEncoding(\是对请求进行了中文编码。

33

东北石油大学本科生毕业设计(论文)

结 论

本次毕业设计期间,独立开发了网上订餐系统。系统主要采用JSP技术进行开发。

1.网上订餐系统主要实现了前台和后台两大功能,前台包括用户登录、菜品

查询、用户订餐和在线聊天。后台包括了用户管理,菜品管理,订餐及订座管理等。

2.开发过程中技术上遇到并作为重点解决的是乱码问题和数据库连接问题。 3.本系统运行平稳,界面友好,系统设计能够满足现实生活中对网上订餐的

需求。

34

东北石油大学本科生毕业设计(论文)

参考文献

[1] 中国电子政务发展研究现状.[EB/OL].http: //www.gygov.cn/jumpnews/

bg050401.htm,2005-05-21.

[2] 李春儒. 守望互联网经济——电子商务发展现状与趋势.[EB/OL].http:/

/www.chinacc.com/01/010208.htm,2005-05-21.

[3] 李飞. 最新实用网络技术教程[M].西安:西安电子科技大学出版社:69~70

124~126.

[4] Y.Daniel Liang. Introduction to Java Programming(Sixth Edition).China Machine

Press.

[5] 陆正武,蒋武,刘军,石正贵. Java项目开发实践[M].中国铁道出版社,2004:6~

7,87~112.

[6] Bruce Eckel. Thinking in java(Second Edition)[M].美国Prentice Hall:41~48. [7] 黄理,李积善,曹林有,张勇. 用JSP轻松开发Web网站(第一版)[M].北京希望

电子出版社,2001:100~152.

[8] 萨师煊,王珊. 数据库系统概论(第三版)[M].高等教育出版社,2001:84~

149.

[9] Cay S.Horstmann Gary Cornell. Java核心技术卷Ⅰ北京:机械工业出版社,2003. [10] 马海军,杨继萍. Java 2 实用教程[M].北京:清华大学出版社,2004.1~63. [11] 飞思科技产品研发. JSP 应用开发详解(第二版)[M].北京:电子工业出版

社,2004:23~28,259~316.

[12] 肖金秀,冯沃辉,施鸿翔. JSP程序设计教程[M].北京:冶金工业出版社,2003:

110~139.

[13] 徐强,常丽莉. Java程序设计教程[M].北京:电子工业出版社,2003:333~

371,386~387.

35

东北石油大学本科生毕业设计(论文)

致 谢

经过几个月的忙碌和学习,本次毕业论文设计已经接近尾声。作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有指导教师的督促指导,想要完成这个设计是难以想象的。在这里我要感谢袁文翠老师,袁老师平日里工作繁多,但在我做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了我悉心的指导。让我掌握了坚实的专业知识基础,为我以后的扬帆远航注入了动力!同时,在此期间我还得到了许多同学的帮助,在一起互相帮助,互相提高,我在这里也向帮助我的同学们表示感谢!最后,向在大学四年里给予我指导和帮助的各位老师、同学表示由衷的感谢!

36

本文来源:https://www.bwwdw.com/article/3sfg.html

Top