网上订餐JSP系统毕业论文
更新时间:2024-05-25 21:02:01 阅读量: 综合文库 文档下载
- 网上订餐怎么订推荐度:
- 相关推荐
摘 要
本系统属于商品管理自动化系统的一个子系统,它也是一个单独的功能完善的系统,本课题是网上订餐管理系统的研发,本文的系统分析和设计只是相对于一般的团体而言。
本文包括网上订餐管理系统NOMS(Net-Order Management system)的总体方案设计和开发。着重介绍了订餐管理系统的详细开发方案和实现,内容涉及系统分析、软件设计。
在开发设计中,采用B/S(Browser/Server)结构,这种结构使得数据只有结果集合在浏览器中显示,数据的处理在服务器进行,用户不用安装客户端,而且由于通过服务器端统一管理数据,易于保证数据的一致性。数据库方面,推荐业界具有领导地位的关系数据库管理系统Microsoft SQL sever2000,使系统安全性能更高。同时采用当前正在流行的JSP(Java Server Pages)编程,用户界面更友好。
在开发中选择了JSP+JavaBean+SQL2000的模式,实现了应用程序逻辑和页面显示分离,界面设计更简单。JavaBean可重用的软件组件满足小型应用,同时使编程人员投入量精力便可重用组件,在简单的应用中可以充分考虑。
关键字 网上订餐管理系统,NOMS(Order management system),B/S,JSP(Java Server Pages),JavaBean
ABSTRACT
This system belongs to the product management automation system a sub- system, it also is the system which an independent function consummates,This topic is the Net-Order Management System partial research and development, This article system analysis and the design only is opposite in the common association says.
This paper includes system design and development of NOMS. It introduced the detailed development product management and realizations of the Net-Order Managerment System. It contains system analysis and design of software.
In developing, it adopts the structure of Browser/Server. This structure makes only
I
concourse of result data print in the browser. And this kind of structure can lighten client burden greatly. As the server administers the data in unison, it is apt to guarantee the consistency of the data. The Microsoft SQL sever2000 database is security, so lots of use it. In addition, the tool of JSP makes the interface more amity.
Chose in the development JSP+JavaBean+SQl2000 Pattern,Realized The contact surface design is simpler.JavaBeanMay entrust with heavy responsibility software moduleSatisfies the small application,Also causesThe programmers inputs energy then may entrust with heavy responsibility the module,May fully consider in the simple application.
KEY WORD: B/S,NOMS, Jsp , Javabean
II
目 录
第一章 绪论 ............................................................................................................................................ 1 1.1 课题的背景及意义 ............................................................................................................................ 1 1.2课题分析 ............................................................................................................................................. 1 1.3技术方案的选取 ................................................................................................................................. 2 1.3.1 开发语言 ..................................................................................................................................... 2 1.3.2 开发模式选择 ............................................................................................................................. 3 1.3.3 数据库 ......................................................................................................................................... 3
第二章 系统概述..................................................................................................................................... 5 2.1运行环境 ............................................................................................................................................. 5 2.1.1软件运行环境 .............................................................................................................................. 5 2.2需求分析 ............................................................................................................................................. 5 2.2.1 管理者的需求 ............................................................................................................................. 5 2.2.2 系统使用者需求 ......................................................................................................................... 5 2.2.3 系统维护人员需求 ..................................................................................................................... 6 2.3 总体设计原则 .................................................................................................................................... 7 2.4 系统体系结构分析 ............................................................................................................................ 7 2.4.1 C/S结构与B/S结构 ................................................................................................................... 7 2.4.2 B/S与C/S的优越性 ................................................................................................................... 7
第三章程序设计 .................................................................................................................................... 10 3.1系统数据库设计 ............................................................................................................................... 11 3.2 程序模块设计 .................................................................................................................................. 14 3.3 系统模块总图 .................................................................................................. 错误!未定义书签。 3.3 分页显示算法 .................................................................................................................................. 16 3.4 上传下载的实现 .............................................................................................. 错误!未定义书签。 3.4.1 jspSmartUpload组件的特点 ..................................................................... 错误!未定义书签。 3.4.2、jspSmartUpload组件相关类 .................................................................. 错误!未定义书签。 3.4.3 jspSmartUpload实例 ................................................................................. 错误!未定义书签。 3.5程序界面设计 ................................................................................................... 错误!未定义书签。
第四章 系统实现主要技术 ................................................................................................................... 17 4.1 JavaServer Pages(JSP)技术简介 ................................................................................................. 17
III
4.2 JSP 和其他类似或相关技术的一个简单比较 ............................................................................... 18 4.3 最佳JSP应用服务器Tomcat......................................................................................................... 19 4.4 javaBean组件技术 ........................................................................................................................... 19 4.5 JSP中JavaBeans的应用 ................................................................................................................. 22 4.5.1
第五章 测试问题及解决 ....................................................................................................................... 31 5.1 java汉字处理问题及解决 ............................................................................... 错误!未定义书签。 5.2文件下载问题 ................................................................................................... 错误!未定义书签。 结 论 .................................................................................................................................................... 40 结束语 .................................................................................................................................................... 41 参考文献 ................................................................................................................................................ 42 附 录 .................................................................................................................... 错误!未定义书签。
IV
网上订餐管理系统 第一章 绪 论
第一章 绪论
1.1 课题的背景及意义
随着Internet的普及,越来越多的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态信息,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。
其中网上订餐系统是电子商务网站的一种,随着信息化时代的到来,人们对生活质量的追求不断提高,由于人们工作,学习的关系,常常无法正常吃饭,随着网络的普及,网上订餐业务在中国开始盛行,人们也通过网络订餐的方式获得自己需要的食物。这样既节省了时间,也可以为广大用户提供更多的口味。
该系统使用JSP(Java语言)和SQL Server2000数据库开发, 实现了网上订餐系统的动态管理,使得网上订餐的管理更加及时、高效,提高了工作效率。该管理系统具有一般网上订餐系统的功能,从大的方面来讲主要包括资讯管理,餐饮管理,预定管理,用户管理等几个大的功能模块。
该系统是基于B/S(Browser/Server,浏览器/客户端)模式实现,基于Myeclipse平台架构开发设计,主要实现对网上订餐的使用、需求、以及用户订餐的动态管理等。随着Internet/Intranet技术的兴起,将原本在单机或本地局域网上运行的数据库系统移植到因特网中,即开发基于B/S模式的新一代MIS(Management Information System,管理信息系统)系统,正成为技术发展的趋势。为了保证系统性能的高效性、可扩展性,以及达到数据共享和网络化管理的目的,本系统采用B/S体系结构进行设计开发。
1.2课题分析
该系统分为前台和后台两个部分,前台部分主要是用户进行资讯的浏览,以及订餐,订座管理等,主要是面向用户的。而后台主要是管理人员对前台数据的维护和设置,主要是面向管理人员的。网上订餐系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。该系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。
对于本系统的不同使用者,其功能与业务逻辑是不尽相同的。对于普通用户而言,系统主要像用户展示一个美观的界面,用户在可以浏览各类资讯,查询餐饮信息,订餐,订座等。而管理员则需要在后台维护这些数据。本系统的主要功能应是用户的订餐了,用户可以查询菜品信息,当发现自己满意的以后,可以将这些菜品添加到自己的购物车,此时用户虽然选择了要预定的商品,但是还不具备法律效用,
1
网上订餐管理系统 第一章 绪 论
当用户通过一定方式(此方式不属编程范围)得到预定许可后,管理员在后台可以审核是否批准该用户的订餐请求,当管理员同意了该用户的订餐请求,即可将该用户所预定的发送给客户,此时客户在客户端可以看到自己购物车的状态(此时是已经通过审核),如果管理员没有批准或没有处理等,该客户都可以在前台看见相关信息。
1.3技术方案的选取
1.3.1 开发语言
随着互联网技术的不断发展,基于浏览器/服务器(Browser/Server 简称B/S)体系结构的应用程序得到了空前广泛的应用。但是服务器之间的通讯,尤其是在不同平台上运行的服务器之间的通讯仍然不是一件容易的事情。因为大多数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的交互式应用程序的过程
JavaServer Pages (JSP)满足这些要求,它整合了存在的Java编程环境提供支持的技术和工具,产生了一种新的、开发基于Web应用程序的方法,这个方法给予使用基于组件应用的逻辑页面的设计者提供了强大的功能。
2
网上订餐管理系统 第二章 系统概述
1.3.2 开发模式选择
JSP有两中开发模式JSP+JavaBeans和JSP+Servlet+JavaBeans,在模式一中,JSP页面独自响应请求并将处理结果返回客户。所有的数据通过Bean来处理JSP实现页面的表现。模式一技术实现了页面的表现--和页面的商业逻辑相分离。大量使用模式一形式,常常会导致页面被嵌入大量的脚本语言或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。
1.3.3 数据库
SQL Server 2000是一个分布式的关系型数据库管理系统,具有客户/服务器体系结构。Mircrosoft SQL Server 2000是一个应用广泛的数据库管理系统,具有许多显著特点,例如,用户喜欢的易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性能价格比等。
SQL Server 2000系统中,数据库的管理采取了先进的动态管理机制,数据库的
3
网上订餐管理系统 第二章 系统概述
大小可以随着数据量的变化而缩小或者扩大。另外,用户数据都是非常重要的和保密的,这些数据存储在Mircrosoft SQL Server 2000系统中有绝对的安全性保障,有完善的用户帐户策略和许可机制,只有经过授权的用户才能访问系统,并且执行相应的操作和访问允许访问的数据。未经授权的用户既不能执行相应的操作,也不能访问数据库中的相应数据。
SQL Server 2000系统具有强大的网上功能,可以在Internet上发布数据库中的数据。在Mircrosoft SQL Server 2000系统中,允许用户简单的使用一些向导和工具把数据库的数据发布到网络上,并且可以根据需要来调度修改已经发布的数据。
4
网上订餐管理系统 第二章 系统概述
第二章 系统概述
2.1运行环境
2.1.1软件运行环境
服务器端:
操作系统:Windows XP操作系统 数据库:Microsoft SQL Server 2000 网络通信协议:TCP/IP 支持软件:tomcat,MyEclipse
2.2需求分析
网上订餐管理系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。进货订单管理系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。
2.2.1 性能需求分析
该系统在性能功能上应达到如下需求:
◆ 操作简单、界面友好: 完全控件式的页面布局,使得菜品,资讯,座位等信息的录入工作更简便,许多选项包括餐厅信息,桌位,包房信息等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,顾客对菜品的预定及支付方式;
◆ 即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能;
◆ 系统运行应该快速、稳定、高效和可靠;
◆ 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。
2.2.2产品质量需求分析 主要质量属性 详细要求 按照需求正确执行任务,完成各个模块的相应要求。 正确性 5
网上订餐管理系统 第二章 系统概述
健壮性 可靠性 性能,效率 具有较高的容错能力和恢复能力。 故障发生率每运行1000小时低于3次 软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请求。 易用性 易理解性:软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。 安全性 防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性其数据应能集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也不应进行什么数据同步. 可扩展性 兼容性 可移植性 … 能方便的进行二次开发,满足对功能的扩充或提高并能提高相应的安全控制。 不易与其他软件起冲突。 可方便移植到其他系统环境中正常运行。
2.2.3 可行性分析
随着经济的快速发展,B2C电子商务越来越受到人们的关注。网上订餐类网站,已经如雨后春笋般的出现在了个大城市。特别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑刺,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的菜品,品尝不同风格的菜品,网络订餐业务在中国有着极大的发展空间以及良好的背景。而当代大学生,白领工作人士作为社会中的重要群体,他们对饮食的要求都在不断提高,饮食在他们生活中起着重要作用。因此,面向大学生和都市白领人士的网络订餐网站的设计有着良好的现实意义。
综合以上两点分析,此次毕业设计决定利用JSP和SQL技术设计网上订餐管理系统。
JSP可以创建和运用动态、交互的WEB服务器应用程序。同时,JSP具有向跨平台跨服务器的优点。SQL Server 2000是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等。
6
网上订餐管理系统 第二章 系统概述
2.3 总体设计原则
1、开放性、可扩充性、可靠性原则
开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品都符合一些公共的、可以相互操作的标准,能够融洽的在一起工作。开放系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。从而适应广大用户需求的多变性和产品的更新换代。
2、良好的用户操作界面
用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。 3、实用性原则
任何系统的设计都要考虑其实用性,系统开发的目的是为了实现业务处理自动化、规范化,提高工作效率,减轻工作人员的劳动强度,减少开支。
4、工作平台设计原则
能适应不同的操作平台,不同的网络。
2.4 系统体系结构分析
2.4.1 C/S结构与B/S结构
客户/服务器(CLIENT/SERVER)结构,是将一个系统分解为前台的客户应用程序和后台的服务器部分,通过网络连接应用程序和服务器。这种结构的核心是客户应用程序向服务器发送服务请求,服务器完成后端处理。服务器是一台管理数据资源并执行数据库引擎功能(加数据存储、操作和保护)的计算机,处理结构由服务器发回客户应用程序,由客户应用程序对处理结构进行显示。这种结构的优点是只有处理后的数据在网络中传递,大大减轻了网络的负担,而且由于通过服务器端统一管理数据,易于保证数据的一致性。
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3层结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构,.net也是在这样一种背景下被提出来的架构,JAVA技术已经是很成熟的应用了。
2.4.2 B/S与C/S的优越性
C/S(Client/Server,客户端/服务器)是建立在局域网的基础上的,B/S是建立在广域网的基础上的。传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软
7
网上订餐管理系统 第二章 系统概述
件,没能提供用户真正期望的开放环境;B/S结构则不同,它的前端是以TCP/IP协议为基础的,企业内的WWW服务器可以接受安装有Web浏览程序的Internet终端的访问,作为最终用户,只要通过Web浏览器,各种处理任务都可以调用系统资源来完成,这样大大简化了客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体拥有成本。总的来说,两者有如下差别:
1.硬件环境不同
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备, 信息自己管理, 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行。
2.对安全要求不同
C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜, 可以通过B/S发布部分可公开信息。B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群。
3.对程序架构不同
C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑。B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上。
4.软件重用不同
C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好。B/S 对的多重结构,要求构件相对独立的功能。 能够相对较好的重用。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。
5.系统维护不同
系统维护是软件生存周期中,开销大,相当重要C/S 程序由于整体性,必须整体考察,处理出现的问题以及系统升级难, 可能是再做一个全新的系统。B/S 构件组成方面构件个别的更换,实现系统的无缝升级。 系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。
6.处理问题不同
C/S 程序可以处理用户面固定,并且在相同区域, 安全要求高的需求,与操作系统相关, 应该都是相同的系统。B/S 建立在广域网上, 面向不同的用户群,分散地域, 这是C/S无法作到的,与操作系统平台关系最小。
7.用户接口不同
C/S 多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流, 并且大部分难度减低,降低开发成本。
8
网上订餐管理系统 第二章 系统概述
8.信息流不同
C/S 程序一般是典型的中央集权的机械式处理,交互性相对低。B/S 信息流向可变化。
9.成本降低,选择更多
软件系统的改进和升级越来越频繁,B/S架构的产品明显体现的更方便的特性。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行,如果是异地只需要把服务器连接上网即可立即进行维护和升级,这对人力、时间、费用的节省是相当惊人的。传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,这么高的代价和低效率已经越来越不适应了。在JAVA这样的跨平台语言出现之后B/S架构更是飞快地普及起来了。
10.面向电子商务时代的技术
将来所有的应用系统几乎都在互联网上运行,企业发展电子商务也是不可避免的,而B/S架构的软件则代表了将来的技术,只要连上互联网或内部广域网就可以与全球的客户相连,与各地的分支机构相连。
综上所述,可以看出B/S结构的众多优点,比其他结构的先进性,无论是办公自动化管理系统,人力资源管理系统,客户关系管理系统,ERP等等,发展的趋势是不断融合,结合当今这些方面的发展,我们可以得出这样的结论:采用统一的B/S结构开发的产品无论是现在还是将来都是最好的选择,而在今后的实际工作开发中,则应该首选B/S结构。
[5]
9
网上订餐管理系统 第四章 系统实现主要技术
第三章程序设计
3.1系统流程分析
3.1.1业务流程分析
1、 浏览与选择餐饮信息:顾客进入网站即刻自动提供购物车,不需身份确认就可以在网站上随意浏览,登录系统后则可挑选餐饮(可增加、删除、修改购物车上餐饮的类型),网站提供餐饮信息列表,最先添加的餐饮信息优先列表给顾客作为选购时的参考;
2、 判断:顾客确定所购餐饮信息后,系统将判断该顾客是否注册,如果是,则可直接填写订单;否则,提示顾客登记注册;
3、 提交订单:已选购的餐饮信息需填写订单细节。 4、 注册:顾客可在公司的网站上注册后提交申请;
5、 确认:后台管理将实时得到顾客的注册信息,通过电话及其他方式确认,当确认后,系统管理员可对该顾客提交的预定信息进行审核。
6、送货与付款:网上的每一份订单都将实时存入后台数据库,后台操作人员通过电话及其他方式确认,确认后将及时实施审核该订单:向顾客送货,货到付款,完成网上交易。
顾客 交易 浏览菜品资讯 登录系统 获得购物车 Y 浏览餐饮信息 管理员 选择餐饮信息 审核 N 结束
10
网上订餐管理系统 第四章 系统实现主要技术
3.1.1数据流程分析
该系统数据流程比较简单,管理员可以添加餐厅信息(包括餐桌,包房等),餐饮信息(包括菜品名等信息),资讯信息等,然而这些信息顾客是可以浏览的,但是顾客没有权限对这些信息进行修改,这些信息对于顾客而言是单向的。对于预定信息,管理员可以查看及审核预定信息,顾客可以增删改预定信息,并将预定信息提交给管理员等待审核,因此预定信息对于顾客和管理员而言都是双向的。 3.1.1.1数据流图
数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。系统的数据流图如下所示:
餐厅信息餐饮信息管理员资讯信息数据库顾客餐饮预定
系统DFD图
3.2系统数据库设计
3.2.1 数据库E-R图
11
网上订餐管理系统 第四章 系统实现主要技术
Users(用户表) 发布 orders(订单表) 用户名 权限 地址 电话 应收款 密码 发布 订餐人 所属 备注 Seat(订座表) Shop(订单菜单表) 电话 订餐人 人数 点菜 菜名 数量 单价 时间 st(订座菜单表) 菜名 数量 单价 category (类别表) Food (菜单表) 类别名 菜名 图片 单价
12
网上订餐管理系统 第四章 系统实现主要技术
3.2.2 数据库表设计
系统关键数据表如下:其关系见E-R图
1.用户表(users):用户登录是需要用户名和密码,所以用户数据表中必须包含用户名(uname)、密码(upass)两个信息,还有些其他的用户信息,比如power指的是用户权限(管理员还是非管理员)。从功能上数据库表设计如表3.1。
表 3.1 用户表
列名 uid uname upass power 数据类型 int varchar varchar int 长度 4 50 50 4 2.菜品信息表(food):菜品信息表主要描述菜品信息,如:菜品ID号(foodid),此ID号为系统自动生成;菜品名称(fname);菜品价格(price);所属分类ID(categoryId);图片信息(images)。商品信息表详细描述如表3.2
表3.2菜品信息表
列名 foodId price categoryId images 数据类型 int money int varchar 长度 4 8 4 50 3.订座菜单表(st):客户订餐的一些相关信息,如stId指的订餐ID号,此ID和是系统自动生成的;菜品名称(fname);订购数量(num);价格(price);座位编号(seatId)等,具体描述表3.3
表3.3供应商表 列名 stId fname num price 数据类型 int varchar int money int int 13
长度 4 50 4 8 4 4 seatId fId
网上订餐管理系统 第四章 系统实现主要技术
4.订单表(orders): 订单表有一下描述信息。订单ID(ordersId),订购人姓名(name),地址(address),联系电话(tel),价格(price),备注信息(context)等,具体描述如表3.4所示:
表3.4订单表
列名 ordersId name address tel 数据类型 int varchar varchar varchar numeric int text 长度 4 50 50 50 9 4 16 price uid context
5.订单菜单表(Shop)具体描述如表3.5所示:
表3.5订单菜单表 列名 fId fname num price 数据类型 int varchar int Money int int 长度 4 50 4 8 4 4 uid sid
6.订座表(Seat)具体描述如表3.6所示:
表3.6订座表
列名 seatId uid tel riqi 数据类型 int int varchar varchar int varchar varchar 长度 4 50 50 50 4 4 50 num name xiaoshi
14
网上订餐管理系统 第四章 系统实现主要技术
3.3系统结构设计
网上订餐系统的模型结构如下图所示:
客户端 浏览器 客户端 浏览器 业务层 Web 层 数数据访问层 据库 客户端 浏览器 系统配置 从前面的需求分析中得知,可以将功能分为前台和后台两类,因此模块也分为两大类:前台模块和后台模块。 下图为系统模块总图:
网上订餐管理系统 前台模块 后台模块 注册登录 菜品查询 订单查询 用户订餐 用户订座 用户权限管理 菜品管理 订餐管理 订座管理 用户管理
系统模块总图
15
网上订餐管理系统 第四章 系统实现主要技术
3.4 核心算法实现——分页显示算法
int i;
一页显示的记录数 = 10; 取得待显示页码 PageSet : strPage = page;
if(strPage==null)//page参数为空时,此时显示第一页数据 {
待显示页码 = 1; } else{
待显示页码 = Integer.parseInt(strPage); //将字符串转换成整型 if(待显示页码<1) 待显示页码 = 1; }
执行SQL语句并获取结果集
ResultSet rs = sqlStmt.executeQuery(\); 获取记录总数 rs.last();
记录总数 = rs.getRow(); 记算总页数
总页数 = (记录总数+设置一页显示的记录数-1) / 一页显示的记录数; 调整待显示的页码
if(待显示页码>总页数) 待显示页码 = 总页数; // 分页情况分类 //选择向上翻 if(待显示页码>1) {
选择向上翻一页传递参数pageda=待显示页码-1 goto PageSet; }
//选择向下翻
if(待显示页码<总页数) {
选择向下翻一页传递参数pageda=待显示页码+1 goto PageSet; }
If(选择到尾页)
16
网上订餐管理系统 第四章 系统实现主要技术
{
选择到尾页传递参数pageda=总页数 goto PageSet; }
页次=待显示页码 / 总页数页 ; if(总页数>0){
将记录指针定位到结果集的第一条记录上((待显示页码-1) * 一页显示的记录数 + 1); i = 0;
while(i<一页显示的记录数 && 数据库指针不在结果集尾部){ 输出要分页显示的数据库中的内容;
将数据库指针移动到当前行的下一行; i++; } }
第四章 系统实现主要技术
4.1 JavaServer Pages(JSP)技术简介
在开发JSP规范的过程中,Sun 公司与许许多多主要的Web服务器、应用服务器和开发工具供应商,还有各种各样富有经验的开发团体进行合作。最后找到了一种平衡了应用和页面开发的具有可移植性和易用性的开发方法,JSP技术特征在多个方面加速了动态Web页面的开发:
1) 将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容,这些内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格。生成内容的逻辑部分被封装在JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在Beans中,那么其他人,如Web管理人员和页面设计者,在编辑和使用JSP页面的时候,将不会影响到内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成客户端请求的内容,例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者其他文件,并且将结果以HTML(或者XML)页面的形式发送回浏览器。这将有助于作者保护自己的代码,并且又保证任何基于HTML的Web浏览器的完全可用性。 2) 强调可重用的组件
绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise
17
网上订餐管理系统 第四章 系统实现主要技术
JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理问题。开发人员能够共享和交换执行普通操作的组件,或者发布这些组件使更多的使用者或者客户团体能够使用。 3) 采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是容易使用的、同时与JSP相关的XML标识中进行动态内容的生成时需要的。通过开发定制化标识库,JSP技术是可扩展的。今后,第三方开发人员和其他人员可以将常用的功能创建到自己的标识库。这使得Web页面开发人员能够象使用熟悉的工具一样来使用标识来执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以便使用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用开发。由于JSP页面的内置脚本语言是基于Java编程语言的,并且所有的JSP页面都能被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的厂家将对JSP的支持添加到他们的产品中,我们可以选择不同的服务器和工具,因为更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE)[8]和Enterprise JavaBean技术整合时,JSP页面提了供企业级的扩展性能,这对于在虚拟企业中部署基于Web的应用是必需的。
4.2 JSP 和其他类似或相关技术的一个简单比较
1) JSP和Active Server Pages(ASP)相比
Microsoft的ASP是一种和JSP类似的技术。JSP和ASP相比具有两方面的优点。首先,动态部分用Java编写,而不是VB Script或其他Microsoft语言,不仅功能更强大而且更易于使用。第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服务器上。 2) JSP和纯Servlet相比
JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用 println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。
3) JSP和JavaScript相比
JavaScript能够在客户端动态地生成HTML。虽然JavaScript很有用,但它只能
18
网上订餐管理系统 第四章 系统实现主要技术
处理以客户端环境为基础的动态信息。除了Cookie之外,HTTP状态和表单提交数据对JavaScript来说都是不可用的。另外,由于是在客户端运行,JavaScript不能访问服务器端资源,比如数据库、目录信息等等。
4.3 最佳JSP应用服务器Tomcat
大多数人(大概29%)都喜欢将Apache Tomcat当作JSP应用服务器使用。有人可能会说,它之所以受欢迎是因为这个服务器是免费和开放源代码的,但是真正的原因远不止这些。Apache Tomcat能够受欢迎,不仅是工作性能非常好,还有没有初始的开发成本开销等有力的竞争因素,但这不是决定因素。Tomcat 结构非常合理,更由于Tomcat 是Apache 组织的产品,这个组织有着雄厚的技术更新力量,并且Tomcat5.0 很好的支持了JSP2.0 规范,因此有着很好的发展前景。
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司以及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界内的地位。
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:也处理Html页面,但是与Apache相比,它的处理静态Html的能力就不如Apache。
JDK 是SUN 公司的JAVA应用程序和组件的开发环境,是编译、测试工具,也是提供JAVA 程序的 JAVA 虚拟机平台,是调试和运行JSP 所不可缺少的工具[9]。
4.4 javaBean组件技术
1. 什么是JavaBean
软件开发的真正目的之一是利用在程序编码方面的投资,以便在同一公司或者不同公司的其他开发中重用程序编码,近年来,编程人员投入大量精力以便建立可重用的软件、可重用的软件组件,早期用在面向对象编程方面中的投资已经在Java、C#等编程语言的开发中充分实现,很多软件可以不用做很大的改变就可以运行在各种平台上。
JavaBeans描述了Java的软件组件模型,这个模型被设计成使第三方厂家可以生成和销售能够集成到其他开发厂家或者其他开发人员开发的软件产品的Java组件。
应用程序开发者可以从开发厂家购买现成的JavaBeans组件,拖放到集成开发环境的工具箱中,再将其应用于应用软件的开发,对于JavaBeans组件的属性、行为可以进行必要的修改、测试和修订而不必重新编写和编译程序。在JavaBeans模型中JavaBeans组件可以被修改或者与其他JavaBeans组件组合以生成新的JavaBeans组件或完整的Java应用程序。
Java应用程序在运行时,最终用户也可以通过JavaBeans组件设计者或应用程序开发者所建立的属性存取方法setXXX方法和getXXX方法修改JavaBeans组件的属
19
网上订餐管理系统 第四章 系统实现主要技术
性。这些属性可能是颜色和形状等简单属性,也可能是影响JavaBeans组件总体行为的复杂属性。
JavaBeans组件模型使得软件可以设计成便于修改和便于升级。每个JavaBeans组件都包含了一组属性、操作和事件处理器。将若干个JavaBeans组件组合起来就可以生成设计者、开发者所需要的特定运行行为,JavaBeans组件存放于容器或工具库中,供开发者开发应用程序。
JavaBeans就是一个可以复用软件模型。JavaBeans在某个容器中运行提供具体的操作性能。JavaBeans是建立应用程序的建筑模块。大多数常用的JavaBeans通常是中小型控制程序,但我们也可以编写包装整个应用程序运行逻辑的JavaBeans组件,并将其嵌入到复合文档中,以便实现更为复杂的功能。
一般来说JavaBeans可以表示为简单的GUI组件,可以是按钮组件、游标、菜单等等。这些简单的JavaBeans组件提供了告诉用户什么是JavaBeans的直观方法。但我们也可以编写一些不可见的JavaBeans,用于接受事件和在幕后工作,例如访问数据库执行查询操作的,JavaBeans它们在运行时刻不需要任何可视的界面。在JSP程序中所用的JavaBeans一般以不可见的组件为主。可见的JavaBeans一般用于编写Applet程序或者Java应用程序。
2.JavaBeans属性
JavaBeans的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是同一个概念,在程序中的具体体现就是类中的变量在。JavaBeans的设计中,按照属性的不同作用又细分为4类:Simple属性、Index属性、Bound属性与Constrained属性。 1) Simple属性
一个Simple类型的属性表示一个伴随有一对getXXX()、setXXX()方法的变量。属性的名称与和该属性相关的getXXX()、setXXX()方法相对应。例如:如果有setX()和getX()方法,则暗指有一个名为\的属性,如果有一个方法名为isX()则通常暗指\是一个布尔类型的属性。 2) 4 Indexed属性
一个Indexed类型的JavaBeans属性表示一个数组值。使用与该属性相对应的setXXX()方法和getXXX()方法可以存取数组中某个元素的数值。同时,我们也可以使用另两个同名方法一次设置或取得整个数组的值(即属性的值)。 3) 5 Bound属性
一个Bound类型的JavaBean组件的属性具有这样的特性:当该种属性的值发生变化时必须通知其它的JavaBeans组件对象。每次JavaBeans组件对象的属性值改变时,这种属性就引发一个PropertyChange事件(属性改变事件,在Java程序中,事件也被看作是一个对象)。这个事件中封装了发生属性改变事件的属性名、属性的原值、属性变化后的新值。这个事件将被传递到其它的JavaBeans组件中,至于接收事件的
20
网上订餐管理系统 第四章 系统实现主要技术
JavaBeans组件对象应该做什么动作由其自己定义。请看程序代码: import java。beans。*; public class JavaBean3 {
String ourString= \
private PropertyChangeSupport changes = new PropertyChangeSupport(this); public void setString(String newString) {
String oldString = ourString; ourString = newString;
changes。firePropertyChange(\}
public String getString() {
return ourString;
} public void addPropertyChangeListener(PropertyChangeListener l) {
changes。addPropertyChangeListener(l);
} public void removePropertyChangeListener(PropertyChangeListener l) {
changes。removePropertyChangeListener(l); } }
程序首先创建了PropertyChangeSupport类型的对象changes,这是最关键的一步操作,changes对象主要用于向监听者对象发送信息:当前的JavaBean对象已经发生了属性改变的事件。在JavaBean3.java程序中除了普通的存取JavaBeans属性值的setXXX()getXXX()等方法以,外还定义了如下的方法:
public void addPropertyChangeListener(PropertyChangeListener l); public void removePropertyChangeListener(PropertyChangeListener l);
第一个方法(addPropertyChangeListener()方法)其实是调用changes对象的addPropertyChangeListener()方法,使一个事件监听者对象和当前JavaBean对象绑定起来,并把它添加到监听者队列中去,充当当前JavaBean对象的事件监听者,如果当前JavaBean对象发生了属性值改变的事件,那么changes对象会依次通知监听者队列中的每一个对象,当然也通知了这个事件监听者对象,让它对这个事件做出反映 。
21
网上订餐管理系统 第四章 系统实现主要技术
第二个方法(removePropertyChangeListener()方法)和前者的作用相反,该方法其实是调用changes对象的removePropertyChangeListener()方法,从监听者队列中移除某个特定的事件监听者对象,此事件监听者对象一旦从监听者队列中删除,那么changes对象将不会把属性值改变的事件通知它,它再也没有办法对属性值发生改变的事件作出响应了。
getString()方法可以返回属性值setString()方法用于设定属性值setString()方法的代码如下所示:
String oldString = ourString; ourString = newString;
changes.firePropertyChange(\
在上面的代码中,首先新定义一个字符串oldString,用于保存属性的原值然后把新值赋给属性值,这样会产生JavaBeans组件属性值改变的事件,最后调用changes对象的firePropertyChange()方法,通知监听者队列里的所有事件监听者对象,当前的JavaBean对象发生了属性值改变的事件,属性的名称、属性的新值、属性的原值,都被作为该方法的参数一并传给监听者对象,由它们根据这些信息,对此事件作出响应。 Bound类型的属性就是这样使用的。 4) Constrained属性
JavaBeans组件的Constrained类型的属性具有这样的性质:当这个属性的值将要发生变化但是还没有发生变化的时候,与这个属性已经建立了某种监听关系的其它Java对象可以否决属性值的改变。此Constrained类型的属性的事件监听者对象将会通过抛出PropertyVetoException异常事件来阻止该属性值的改变[12]。
4.5 JSP中JavaBeans的应用
JavaBeans被称为是Java组件技术的核心。JavaBeans的结构必须满足一定的命名约定。JavaBeans类似于Windows下的ActiveX控件:它们都能提供常用功能并且可以重复使用。JavaBeans可以在JSP程序中应用给我们带来了很大的方便,这使得开发人员可以把某些关键功能和核心算法提取出来,封装成为一个组件对象,增加了代码的重用率、系统的安全性。比如我们可以将访问数据库的功能、数据处理功能编写封装为JavaBeans组件,然后在某个JSP程序中加以调用。JavaBeans技术与ActiveX相比,有着很大的优越性,例如JavaBeans的与平台无关性,使得JavaBeans组件不但可以运行于Unix平台,还可以运行在Windows平台下面,而且JavaBeans从一个平台移植到另外的平台上代码不需要修改,甚至不需要重新编译。但是ActiveX就不同了,它只能够应用于Windows平台而且它的代码移植性很差,从Windows 98平台移植到NT平台就需要重新编译代码,甚至要大幅度改写程。序另一方面JavaBeans比ActiveX要容易编写得多,用起来也方便得多。起码JavaBeans组件在使用以前不需要注册而,ActiveX控件在使用以前必须在操作系统中注册,否
22
网上订餐管理系统 第四章 系统实现主要技术
则在运行的时候系统将会报错。本节将介绍在JSP程序中如何使用,JavaBeans组件要想在JSP程序中使用JavaBeans,组件必须应用
1) id属性用来设定JavaBeans的名称,利用id可以识别在同一个JSP程序中使
用的不同的JavaBeans组件实例。
2) class属性指定JSP引擎查找JavaBeans代码的路径,一般是这个JavaBean
所对应的Java类名。
3) scope属性用于指定JavaBeans实例对象的生命周期,亦即这个JavaBean的有
效作用范围。scope的值可能是page、request、session以及application。
4.5.2 JavaBeans的Scope属性
1) Application Scope:
如果JavaBeans的Scope属性被指定为application。也就是说这个JavaBean组件具有Application Scope,这是什么意思呢?如果一个JavaBean组件具有Application Scope,那么它的生命周期和JSP的Application对象同步,作用范围也和Application对象一样。使用这种类型的JavaBeans组件,可以在多个用户之间共享全局信息。具体来说它的生命周期是这样子的:如果某个JSP程序使用
23
网上订餐管理系统 第四章 系统实现主要技术
2) Session Scope
如果一个JavaBean组件的Scope属性值为session,那么这个JavaBean组件的生命周期、作用范围就和JSP 的Session对象的生命周期、作用范围一样。也就是说:这一类型的JavaBeans组件的生命周期就是某个会话过程所经历的时间。实际上会话过程是对于单个用户而言的,会话过程的开始以用户开始访问
某个网站为标志,会话过程的结束以用户结束对该网站的访问为标志。不同的用户对应着不同的会话过程,不同的会话过程之间互不干涉,互不影响。假设用户A第一次访问了某个网站的某个JSP程序,而这个JSP程序用到了一个Scope属性为session的JavaBean组件,那么服务器会自动创建这个JavaBean组件的实例对象,并且当A用户继续访问同一网站其他的JSP程序,而其他的JSP程序又用到同一个JavaBean对象时,那么服务器不会创建新的JavaBean对象,而是使用已经存在的JavaBean对象实例,也就是说在第一个JS程序中创建的JavaBean组件对象在这个用户访问的同一网站的所有的JSP程序中都是可用的,而且这个JavaBean组件对象的状态保持唯一性。如果有另一个用户B,访问了用户A访问过的JSP程序,服务器将会为用户B创建只属于他的JavaBean组件对象。这个新创建的JavaBean组件对象在用户B访问的同一网站的所有JSP程序中都是直接可用的,而不需要创建一个新的组件。并且属于用户A的JavaBean组件对象和属于用户B的组件对象都是唯一的,它们之间互不干涉。
3) Request Scope
如果JavaBeans的Scope属性值被设为request,这种类型的JavaBeans组件对象的生命周期和作用范围和JSP的Request对象一样当一个JSP程序使用
起的JSP程序都可以共享一个Request对象,共享这种类型的JavaBeans组件对象,这种类型的JavaBeans组件对象使得JSP程序之间传递信息更为容易,不过美中不足的是这种JavaBeans不能够用于客户端与服务端之间传递信息,因为客户端是没有办法执行JSP程序,创建新的JavaBeans对象的。
4) Page Scope
如果一个JavaBean的Scope属性被设为page,那么它的生命周期和作用范围在这四种类型的JavaBean组件中是最小的。Page Scope类型的JavaBeans组件的生命周期为JSP程序的运行周期,当JSP程序运行结束,那么该JavaBean组件的生命周期也就结束了。Page Scope类型的JavaBeans组件程序的作用范围只限于当前的JSP程序中,它无法在别的JSP程序中起作用,对应于不同的客户端请求,服务器都会
24
网上订餐管理系统 第四章 系统实现主要技术
创建新的JavaBean组件对象而且一旦客户端的请求执行完毕,那么该JavaBean对象会马上注销,无法为别的客户端请求所使用。
JavaBean是开发此系统的重要方式,在这次开发中采用了JavaBean+JSP+SQL模式,其中数据库的连接采用了JavaBean组件,将程序封装在Bean中不但修改方便,而且保密性高。
4.6 JDK配置
JDK(Java Development Kit )是一切java应用程序的基础,可以说,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class。
安装好JDK后,还需要在环境变量中进行对应的配置。主要进行一下配置: 1、设置JAVA_HOME环境变量
JAVA_HOME的值为JDK安装的目录,例如:C:\\j2sdk1。4。2_07 2、设置CLASSPATH环境变量
CLASSPATH的值表示搜索Java类的路径,例如:
.;C:\\j2sdk1.4.2_07\\bin;D:\\j2sdk1.4.2_07\\lib\\dt.jar;D:\\j2sdk1.4.2_07\\lib\\tools。jar
3、更新PATH环境变量,
PATH变量是系统搜索可执行程序的路径,例如: C:\\j2sdk1.4.2_07\\bin;
4.7 Tomcat配置
4.7.1 Server.xml文件配置
1. 一定要有msbase.jar,mssqlserver.jar,msutil.jar方件并且放到Tomcat/common/lib下。
2. 到Tomcat/conf里server.xml文件修改配置,设置Tomca\\webapps的保存JSP文件的目录,目录名为Webmail,则在文件加入以下语句增加一个虚拟目录:
4. 数据库密码验证配置,找到 5. 数据库url设置,找到 25 网上订餐管理系统 第四章 系统实现主要技术 数据库名为Webmail,用户名为sa,密码为空,其中127.0.0.1为当前用户使用IP地址,端口为1433。 下面是一个server.xml的配置实例: 26 网上订餐管理系统 第四章 系统实现主要技术
4.8 数据库编程
4.8.1数据库编程基础及语法
Java 数据库连接 (JDBC) 是一个标准 SQL(Structured Query Language,结构化查询语言)数据库访问接口, 可以为多种关系数据库提供统一访问。JDBC(Java DataBase Connection,Java 数据库连接) 也提供一种基准,据此可以构建更高级的工具和接口。 目前的 JDK(Java Development Kit,Java 开发工具包)软件捆绑包括 JDBC 和 JDBC-ODBC(Open DataBase Connection,开放式数据库连接)桥。你可以从http://java。sun。com/products/JDK/CurrentRelease 找到最新版。
1) 安装驱动程序。
装载驱动程序只需要非常简单的一行代码。例如,你想要使用 JDBC-ODBC 桥驱动程序, 可以用下列代码装载它: Class.forName(\
如果是JDBC Driver装载: Class.forName(\各种数据库驱动见附录。
2) 建立连接
第二步就是用适当的驱动程序类与 DBMS 建立一个连接。下列代码是一般的做法:
3) Connection con = DriverManager.getConnection(url, \, \myPassword \
这个步骤也非常简单,最难的是怎么提供 url。如果你正在使用 JDBC-ODBC 桥, JDBC URL 将以 jdbc:odbc 开始:余下 URL 通常是你的数据源名字或数据库系统。因此,假设你正在使用 ODBC 存取一个叫 \的 ODBC 数据源,你的 JDBC URL 是 jdbc:odbc:webmail 。把 \及空格替换为你登陆 DBMS 的用户名及口令。如果你登陆数据库系统的用户名为 \口令为空,只需下面的 2 行代码就可以建立一个连接: String url = \
Connection con = DriverManager.getConnection(url,\,\
如果你使用的是第三方开发了的 JDBC驱动程序,文档将告诉你该使用什么 subprotocol, 就是在 JDBC URL 中放在 jdbc 后面的部分。例如, 如果驱动程序
27
网上订餐管理系统 第四章 系统实现主要技术
开发者注册了 acme 作为 subprotocol, JDBC URL 的第一和第二部分将是 jdbc:acme。驱动程序文档也会告诉你余下 JDBC URL 的格式。JDBC URL 最后一部分提供了定位数据库的信息。如果配置了连接池则要使用下面几行代码就可以建立一个连接: Context ctx; DataSource ds;
ctx = new InitialContext();
ds = (DataSource)ctx.lookup(\
connection 接口是JSP数据库编程使用多的接口之一,在connection接口中经常使用到一个方法close();要注意在连接用完后必须关闭,否则连接会继续保持,直到超时。
4) 创建 JDBC Statements 对象
Statement 对象用于把 SQL 语句发送到数据库 。你只须简单地创建一个 Statement 对象并且然后执行它,使用适当的方法执行你发送的 SQL 语句。对 SELECT 语句来说,可以使用 executeQuery。要创建或修改表的语句,使用的方法是 executeUpdate。
需要一个活跃的连接的来创建 Statement 对象的实例。在下面的例子中,使用的 Connection 对象 con 创建 Statement 对象 stmt:
Statement stmt = con.createStatement(int resultSetType,int resultSetConcurrency); ResultSet rs=Stmt.executeUpdate(SQL);SQL为数据库查询语句
Con.createStatement()方法包含两参数:resultSetType和resultSetConcurrency
1. resultSetType参数:
用来设定ResultSet对象中的光标是否能够上下自由移动,它的值只能有3种,TYPE_FORWARD_ONLY
、
TYPE_SCROLL_SENSITIVE
或
TYPE_SCROLL_INSENSITEVE。若设为第一种,表示ResultSet对象中的光标能够随心所欲的上下移动,不过他们两者最大的差别在于:当ResultSet对象中的值有变时,TYPE_SCROLL_SENSITIVETYPE_SCROLL_INSENSITIVE不能。
2. resultSetConcurrency参数:
主要设定ResultSet对象是只读(read-only)还是可以改变的(updatable),他的值有两种,CONCUR_READ_ONLY
和
CONCUR_UPDATABLE。若设为
CONCUR_READ_ONLY,则ResultSet对象和JDBC 1.0的功能一样;若为CONCUR_UPDATABLE,那么表示ResultSet对象可以直接执行数据库的新增、修改和移除功能。
在statement执行SQL语句是,有时会返回ResultSet结果集。该结果集往往
28
能够取得改变后的值,而
网上订餐管理系统 第四章 系统实现主要技术
包含的是查询的记录集。通过ResultSet.next()方法把当前的指针向下移动一位,随着每次调用next导致指针向下移动,按照从上到下的次序获取ResultSe行。
Java.sql.ResultSet提供了检索不同的类型字段,其常用的的方法如下: getString():获得数据库里的varchar、char数据类型。 getFloat():获得数据库里的Float数据类型。
getDouble():获得数据库里的Double Precision数据类型。 getBoolean():获得数据库里Boolean数据类型。
getObject():该方法用于在SQL中无对应类型,可以获得系列化对象。 getClob():获得数据库里的Clob(字符串大型对象)数据类型的对象。 getBolb():获得数据库里的Blob(二进制大型对象)数据类型的对象。 5) 数据库SQL基本操作[14]语句:
? 集合查询Select 语句
SELECT <目标列表达式>,<目标列表达式>……FROM <表名> [WHERE<条件表达式>] ? 数据更新插入 INSERT
INTO <表名>[(<属性列1>][,<属性列2>…])] VALUES(<常量>[,<常量>]…); ? 删除数据 DELETE FROM 〈表名〉 [WHERE〈条件〉];
4.8.2 本系统中的连接方式
在本TOMCAT中配置了连接池,连接程序用JavaBean方法封装,放在WEB-INF\\ classse目录下。 import java.sql.*; import javax.sql.*; import javax.naming.*; public class Db { public Connection con; public Statement stmt; public ResultSet rs;
public PreparedStatement pstmt; public static int error=0;
public static synchronized Connection getCon()throws Exception{
29
网上订餐管理系统 第四章 系统实现主要技术
Context ctx; DataSource ds; try{
ctx = new InitialContext();
ds = (DataSource)ctx.lookup(\System.Err.println();
System.err.println(\数据连接+\return ds.getConnection(); }catch(SQLException e){ System.out.print(e); throw e; }
catch(NamingException e){ System.out.print(e); throw e; } }
public Statement getStmtread(){ try{
con=getCon();
stmt=con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE java.sql.ResultSet.CONCUR_READ_ONLY); }catch(Exception e){
System.out.println(\System.out.println(e.getMessage()); }
return stmt;
}
30
网上订餐管理系统 第六章 问题解决
第五章 程序主要功能截图说明
以下通过截图方式演示程序主要功能:
普通用户登陆后主页
登陆框
31
网上订餐管理系统 第六章 问题解决
菜单管理页面
菜单类别
菜单查询结果集
32
网上订餐管理系统 第六章 问题解决
菜单修改
订餐和订座
订座订单管理页面
订座点菜菜单信息
33
网上订餐管理系统 第六章 问题解决
订座成功点菜
订座成功页面
订座点菜成功后购物车
购物车
34
网上订餐管理系统 第六章 问题解决
订餐详细信息
订餐信息
购物车更新菜数量
订餐处理后页面
35
网上订餐管理系统 第六章 问题解决
订餐处理后页面
购物车页面
订座输入信息
36
正在阅读:
网上订餐JSP系统毕业论文05-25
洗涤剂生产制造方法06-04
热力公司实习报告01-05
2013七年级语文下学期第二单元同步优化训练卷含答案07-25
浅析集团战略管控模式的构建07-29
汇总版-中国城市规划设计研究院笔试题01-05
中国通用温控器市场发展研究及投资前景报告(目录) - 图文06-17
Navisworks应用(一)01-10
北京大学医学院历年考研真题11-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 网上订餐
- 毕业论文
- 系统
- JSP
- 论工程造价管理的改革
- 水解酸化+UASB+生物接触氧化法在处理甲醛废水工艺中的应用
- 2019年中考英语阅读理解一轮选练3人教新目标版
- 杨奎松:新中国镇反运动始末
- 学校及社会的灵异事件大汇总
- 2015温州中考英语模拟卷(二)
- 2013年会计继续教育—营业税改征增值税改革 - - 5小时
- 2016保温施工合同
- 考研专用文学资料(英美文学笔记) - 图文
- 关于校企合作办学法律制度建设的思考
- 应急响应预案十篇
- 谈股市有效性传统度量方法的缺陷
- 粗谈装修如何能省钱
- “遍计我执”和“俱生我执”
- 2017年山东省临沂市中考历史试题
- 2013年DIY简洁版考研日历
- 人教版数学六年级下三单元《比例》单元测试卷
- 2015年可替代能源发展现状及市场前景分析
- 2014年版初中毕业升学复习指导物理答案
- 五谷养生:喝一榨鲜玉米汁效果好