4458ssrs - 云代码空间
——
2011年5月3日星期二
随着麦当劳,肯德基等洋味十足的快餐店越来越密集的出现在城市的大街小巷,越来越多的消费者光顾它们。然而一旦走进这些店铺,大多数人看到的都是铺天盖地排长龙的等待购买的人群、领餐后茫然寻找座位的人群以及因为人太多等不及购买而进去又徘徊出来的人。当然国内其他大型餐饮或者其他行业也都会出现类似的现象。
面对以上这种现象,国民迫切的需要一种实际的解决方法,一个功能完备但是操作简单的订餐点餐系统。
针对目前网络订餐网站的这种局限性,我们提出并设计实现了这个网络订餐系统。
在开发设计中,采用B/S(Browser/Server)结构,这种结构使得数据只有结果集合在浏览器中显示,数据的处理在服务器进行,而且由于通过服务器端统一管理数据,易于保证数据的一致性。数据库方面,推荐业界具有领导地位的关系数据库管理系统Microsoft SQL sever2000,使系统安全性能更高。同时采用当前正在流行的JSP(Java Server Pages)编程,用户界面更友好。
在开发中选择了JSP+JavaBean+SQL2000的模式,实现了应用程序逻辑和页面显示分离,界面设计更简单。JavaBean可重用的软件组件满足小型应用,同时使编程人员投入量精力便可重用组件,在简单的应用中可以充分考虑。(B/S结构应用开发秘笈 作者:陈卫 国防工业出版社 2001)
关键词:餐饮;网上订餐管理系统;JSP,B/S
Abstract
With such as McDonald's, KFC fast-food restaurant on the more densely populated with dye-in-the-wood appear in city streets, more and more consumer patronage them. However, once walked into these shops, most people saw a deluge of long queues of people waiting to buy, and bring postprandial vacant seat because of the crowd and for too many people can't wait to buy and go in and around the cream of the crop. Of course other domestic large food or other industry also will appear similar phenomena.
Facing the above this kind of phenomenon, national urgently need a practical solutions, a function complete but operation simple meal ordering system.
In view of the present network roscoe gateway website this limitation, we put forward and realized this network design roscoe system.
In the development of design, adopts B/S (is clicked/Server) structure, this kind of structure allows data only result sets in the Browser display, data processing in Server, users need not install client, and because by the Server unified management data, easy to ensure the consistency of the data. Database, recommend industry of the leading relational database management system, the system sever2000 Microsoft SQL safety performance is higher. By adopting the JSP are currently popular web Server (Java) programming, more friendly user interface.
In developing chose JSP + JavaBean + SQL2000 model, realized the application logic and page shows the separation, interface design more simple. JavaBean reusable software component meet, and meanwhile make small application programmer inputs, energy and reusable components, in simple applications to consider.
Key Words: meal,online meal,NOMS(Order management system)
目录
随着麦当劳,肯德基等洋味十足的快餐店越来越密集的出现在城市的大街小巷,越来越多的消费者光顾它们。然而一旦走进这些店铺,大多数人看到的都是铺天盖地排长龙的等待购买的人群、领餐后茫然寻找座位的人群以及因为人太多等不及购买而进去又徘徊出来的人。当然国内其他大型餐饮或者其他行业也都会出现类似的现象。
面对以上这种现象,国民迫切的需要一种实际的解决方法,一个功能完备但是操作简单的订餐点餐系统。
业内专家普遍认为,电子商务是一种个性化服务的生产方式,餐饮业长期以来就是个性化、多样化的生产服务。因此,有眼光的餐饮业经营者不应该总是停留在盲目的价格战、地域战阶段,而应在信息化和电子商务领域抢得先机。随着网络的普及,网上订餐业务在中国开始盛行,人们也通过网络订餐的方式获得自己需要的食物。这样既节省了时间,也可以为广大用户提供更多的口味。
该系统分为前台和后台两个部分,前台部分主要是用户进行资讯的浏览,以及订餐,订座管理等,主要是面向用户的。而后台主要是管理人员对前台数据的维护和设置,主要是面向管理人员的。网上订餐系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。该系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。
对于本系统的不同使用者,其功能与业务逻辑是不尽相同的。对于普通用户而言,系统主要像用户展示一个美观的界面,用户在可以浏览各类资讯,查询餐饮信息,订餐,订座等。而管理员则需要在后台维护这些数据。本系统的主要功能应是用户的订餐了,用户可以查询菜品信息,当发现自己满意的以后,可以将这些菜品添加到自己的购物车,此时用户虽然选择了要预定的商品,但是还不具备法律效用,当用户通过一定方式(此方式不属编程范围)得到预定许可后,管理员在后台可以审核是否批准该用户的订餐请求,当管理员同意了该用户的订餐请求,即可将该用户所预定的发送给客户,此时客户在客户端可以看到自己购物车的状态,如果管理员没有批准或没有处理等,该客户都可以在前台看见相关信息。
该系统使用JSP(Java语言)和SQL Server2000数据库开发, 实现了网上订餐系统的动态管理,使得网上订餐的管理更加及时、高效,提高了工作效率。该管理系统具有一般网上订餐系统的功能,从大的方面来讲主要包括资讯管理,餐饮管理,预定管理,用户管理等几个大的功能模块。
该系统是基于B/S(Browser/Server,浏览器/客户端)模式实现,基于MyEclipse平台架构开发设计,主要实现对网上订餐的使用、需求、以及用户订餐的动态管理等。随着Internet/Intranet技术的兴起,将原本在单机或本地局域网上运行的数据库系统移植到因特网中,即开发基于B/S模式的新一代MIS(Management Information System,管理信息系统)系统,正成为技术发展的趋势。为了保证系统性能的高效性、可扩展性,以及达到数据共享和网络化管理的目的,本系统采用B/S体系结构进行设计开发。
随着互联网技术的不断发展,基于浏览器/服务器(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应用程序的方法,这个方法给予使用基于组件应用的逻辑页面的设计者提供了强大的功能。
大多数人(大概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。
JavaBeans被称为是Java组件技术的核心。JavaBeans的结构必须满足一定的命名约定。JavaBeans类似于Windows下的ActiveX控件:它们都能提供常用功能并且可以重复使用。JavaBeans可以在JSP程序中应用给我们带来了很大的方便,这使得开发人员可以把某些关键功能和核心算法提取出来,封装成为一个组件对象,增加了代码的重用率、系统的安全性。比如我们可以将访问数据库的功能、数据处理功能编写封装为JavaBeans组件,然后在某个JSP程序中加以调用。JavaBeans的与平台无关性,使得JavaBeans组件不但可以运行于Unix平台,还可以运行在Windows平台下面,而且JavaBeans从一个平台移植到另外的平台上代码不需要修改,甚至不需要重新编译。起码JavaBeans组件在使用以前不需要注册,本节将介绍在JSP程序中如何使用,JavaBeans组件要想在JSP程序中使用JavaBeans,组件必须应用<jsp:useBean><jsp:setProperty><jsp:getProperty>等JSP的操作指令。
<jsp:useBean>操作指令用于在JSP页面中实例化一个JavaBean组件,这个实例化的JavaBean组件对象将可以在这个JSP程序的其它地方被调用。<jsp:useBean>操作指令的基本语法形式如下所示:
<jsp:useBean id="name" scope="page|request|session|application" />
或者
<jsp:useBean id="name" scope="page|request|session|application" />
body
</jsp:useBean>
Application Scope
Session Scope
Request Scope
Page Scope
SQL Server 2000是一个分布式的关系型数据库管理系统,具有客户/服务器体系结构。Mircrosoft SQL Server 2000是一个应用广泛的数据库管理系统,具有许多显著特点,例如,用户喜欢的易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性能价格比等。
SQL Server 2000系统中,数据库的管理采取了先进的动态管理机制,数据库的大小可以随着数据量的变化而缩小或者扩大。另外,用户数据都是非常重要的和保密的,这些数据存储在Mircrosoft SQL Server 2000系统中有绝对的安全性保障,有完善的用户帐户策略和许可机制,只有经过授权的用户才能访问系统,并且执行相应的操作和访问允许访问的数据。未经授权的用户既不能执行相应的操作,也不能访问数据库中的相应数据。
SQL Server 2000系统具有强大的网上功能,可以在Internet上发布数据库中的数据。在Microsoft SQL Server 2000系统中,允许用户简单的使用一些向导和工具把数据库的数据发布到网络上,并且可以根据需要来调度修改已经发布的数据。
网上订餐管理系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。进货订单管理系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。
该系统在性能功能上应达到如下需求:
◆ 操作简单、界面友好: 完全控件式的页面布局,使得菜品,资讯,座位等信息的录入工作更简便,许多选项包括餐厅信息,桌位,包房信息等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,顾客对菜品的预定及支付方式;
◆ 即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能;
◆ 系统运行应该快速、稳定、高效和可靠;
◆ 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。
具体要求如表3-1:
主要质量属性 |
详细要求 |
正确性 |
按照需求正确执行任务,完成各个模块的相应要求。 |
健壮性 |
具有较高的容错能力和恢复能力。 |
可靠性 |
故障发生率每运行1000小时低于3次 |
性能,效率 |
软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请求。 |
易用性 |
易理解性:软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。 |
安全性 |
防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性其数据应能集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也不应进行什么数据同步. |
可扩展性 |
能方便的进行二次开发,满足对功能的扩充或提高并能提高相应的安全控制。 |
兼容性 |
不易与其他软件起冲突。 |
可移植性 |
可方便移植到其他系统环境中正常运行。 |
随着经济的快速发展,B2C电子商务越来越受到人们的关注。网上订餐类网站,已经如雨后春笋般的出现在了个大城市。特别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑刺,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的菜品,品尝不同风格的菜品,网络订餐业务在中国有着极大的发展空间以及良好的背景。而当代大学生,白领工作人士作为社会中的重要群体,他们对饮食的要求都在不断提高,饮食在他们生活中起着重要作用。因此,面向大学生和都市白领人士的网络订餐网站的设计有着良好的现实意义。
综合以上两点分析,此次毕业设计决定利用JSP和SQL技术设计网上订餐管理系统。
JSP可以创建和运用动态、交互的WEB服务器应用程序。同时,JSP具有向跨平台跨服务器的优点。SQL Server 2000是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等。
工作平台设计原则
能适应不同的操作平台,不同的网络。
客户/服务器(CLIENT/SERVER)结构,是将一个系统分解为前台的客户应用程序和后台的服务器部分,通过网络连接应用程序和服务器。这种结构的核心是客户应用程序向服务器发送服务请求,服务器完成后端处理。服务器是一台管理数据资源并执行数据库引擎功能(加数据存储、操作和保护)的计算机,处理结构由服务器发回客户应用程序,由客户应用程序对处理结构进行显示。这种结构的优点是只有处理后的数据在网络中传递,大大减轻了网络的负担,而且由于通过服务器端统一管理数据,易于保证数据的一致性。
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3层结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构,.net也是在这样一种背景下被提出来的架构,JAVA技术已经是很成熟的应用了。
1、开放性、可扩充性、可靠性原则
开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品都符合一些公共的、可以相互操作的标准,能够融洽的在一起工作。开放系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。从而适应广大用户需求的多变性和产品的更新换代。
2、良好的用户操作界面
用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。
3、实用性原则
任何系统的设计都要考虑其实用性,系统开发的目的是为了实现业务处理自动化、规范化,提高工作效率,减轻工作人员的劳动强度,减少开支。
服务器端:tomcat
操作系统:Windows XP操作系统
数据库:Microsoft SQL Server 2000
网络通信协议:TCP/IP
开发工具:MyEclipse
JSP有两中开发模式JSP+JavaBeans和JSP+Servlet+JavaBeans,在模式一中,JSP页面独自响应请求并将处理结果返回客户。所有的数据通过Bean来处理JSP实现页面的表现。模式一技术实现了页面的表现--和页面的商业逻辑相分离。大量使用模式一形式,常常会导致页面被嵌入大量的脚本语言或JAVA代码。当需要处理的商业逻辑很复杂时,这种情况会变得非常糟糕。大量的代码会使整个页面变得常复杂。对于前端界面设计人员来说,这简直不可想象。这种情况在大项目中最为常见,这也造成了代码的开发和维护出现困难,造成了不必要的资源浪费,在任何项目中,这样的模式总会导致多多少少的定义不清的响应和项目管理的困难。
综上所诉,模式一不能满足大型项目的需要,但是可以较好的满足小型应用,在简单的应用中可以考虑模式一。
模式二技术结合了JSP和Servlet技术充分体现了两者的技术优点。在此模式中通过JSP来表现页面。通过Servlet来完成大量的事务处理。 Servlet充当一个控制者的角色,并负责向客户发送请求。Servlet创建JSP所需要的Bean和对象,然后根据用户的请求行为,决定将哪个JSP页面发送给客户。 从开发的观点,模式二具有更清晰的页面表现,清楚的开发者角色划分,可以充分利用开发小组的界面设计人员,这些优势在大型项目开发中表现的尤为突出,使用这一模式,可以充分发挥每个开发者各自的特长,界面设计人员可以充分发挥自己的表现力,设计出优美的界面表现形式,设计人员可以充分发挥自己的商务处理思维,来实现项目中的业务处理。在大型项目中,模式二更被采用。
但是,本系统开发只是一个小型的JSP应用,同时由于Servlet难于掌握,所以在本课题中采用了模式一开发,既JSP+JavaBean。
1、 浏览与选择餐饮信息:顾客进入网站即刻自动提供购物车,不需身份确认就可以在网站上随意浏览,登录系统后则可挑选餐饮(可增加、删除、修改购物车上餐饮的类型),网站提供餐饮信息列表,最先添加的餐饮信息优先列表给顾客作为选购时的参考;
2、 判断:顾客确定所购餐饮信息后,系统将判断该顾客是否注册,如果是,则可直接填写订单;否则,提示顾客登记注册;
3、 提交订单:已选购的餐饮信息需填写订单细节。
4、 注册:顾客可在公司的网站上注册后提交申请;
5、 确认:后台管理将实时得到顾客的注册信息,通过电话及其他方式确认,当确认后,系统管理员可对该顾客提交的预定信息进行审核。
6、送货与付款:网上的每一份订单都将实时存入后台数据库,后台操作人员通过电话及其他方式确认,确认后将及时实施审核该订单:向顾客送货,货到付款,完成网上交易。
图 3-1 系统业务流程分析图
该系统数据流程比较简单,管理员可以添加餐厅信息(包括餐桌,包房等),餐饮信息(包括菜品名等信息),资讯信息等,然而这些信息顾客是可以浏览的,但是顾客没有权限对这些信息进行修改,这些信息对于顾客而言是单向的。对于预定信息,管理员可以查看及审核预定信息,顾客可以增删改预定信息,并将预定信息提交给管理员等待审核,因此预定信息对于顾客和管理员而言都是双向的。
数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。系统的数据流图如下所示:
数据库
图 3-2 系统DFD图
系统数据库表如下:
1.用户表(users):用户登录是需要用户名和密码,所以用户数据表中必须包含用户名(uname)、密码(upass)两个信息,还有些其他的用户信息,比如power指的是用户权限(管理员还是非管理员)。从功能上数据库表设计如表3-1:
表 3-1 用户表
列名 |
数据类型 |
长度 |
uid |
Int |
4 |
uname |
varchar |
50 |
upass |
varchar |
50 |
power |
Int |
4 |
2.菜品信息表(food):菜品信息表主要描述菜品信息,如:菜品ID号(foodid),此ID号为系统自动生成;菜品名称(fname);菜品价格(price);所属分类ID(categoryId);图片信息(images)。商品信息表详细描述如表3-2:
表3-2 菜品信息表
列名 |
数据类型 |
长度 |
foodId |
int |
4 |
price |
money |
8 |
categoryId |
int |
4 |
images |
varchar |
50 |
3.订座菜单表(st):客户订餐的一些相关信息,如stId指的订餐ID号,此ID和是系统自动生成的;菜品名称(fname);订购数量(num);价格(price);座位编号(seatId)等,具体描述表3-3:
表3-3 供应商表
列名 |
数据类型 |
长度 |
stId |
int |
4 |
fname |
varchar |
50 |
num |
int |
4 |
price |
money |
8 |
seatId |
int |
4 |
fId |
int |
4 |
4.订单表(orders): 订单表有一下描述信息。订单ID(ordersId),订购人姓名(name),地址(address),联系电话(tel),价格(price),备注信息(context)等,具体描述如表3-4所示:
表3-4 订单表
列名 |
数据类型 |
长度 |
ordersId |
Int |
4 |
name |
varchar |
50 |
address |
varchar |
50 |
tel |
varchar |
50 |
price |
numeric |
9 |
uid |
Int |
4 |
context |
text |
16 |
5.订单菜单表(Shop)具体描述如表3-5所示:
表3-5 订单菜单表
列名 |
数据类型 |
长度 |
fId |
Int |
4 |
fname |
Varchar |
50 |
num |
Int |
4 |
price |
Money |
8 |
uid |
Int |
4 |
sid |
Int |
4 |
6.订座表(Seat)具体描述如表3-6所示:
表3-6 订座表
列名 |
数据类型 |
长度 |
seatId |
Int |
4 |
uid |
Int |
50 |
tel |
Varchar |
50 |
riqi |
Varchar |
50 |
num |
Int |
4 |
name |
varchar |
4 |
xiaoshi |
varchar |
50 |
首先介绍用户注册功能模块,用户通过输入用户名、密码、邮箱号确认后提交出现注册成功后,用户可以登录页面。如图5-1:
图5-1 注册界面图
部分代码如下:
<h1>用户注册</h1>
</tr>
<tr>
<td> </td>
<td valign="middle" align="center">用户名:</td>
<td valign="top"><input type="text" name="uname" size="20"
class="input"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td valign="middle" align="center">密 码:</td>
<td valign="top"><input type="password" name="passWord" size="20"
class="input"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td valign="middle" align="center">确认密码:</td>
<td valign="top"><input type="password" name="passWord" size="20" class="input"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td valign="middle" align="center">邮 箱:</td>
<td valign="top"><input type="text" name="email" size="20"
</tr>
编写用户登陆页面。用户填写用户名与密码后,单击【登陆】按钮,则调用登陆程序进行验证,如果登陆成功,系统自动进入顾客信息资料页面,否则用户重新进行登录。如图5-2:
图 5-2 登陆界面
部分代码如下:
<!-- 用postForm表单向result.jsp用GET请求提交数据,注意method属性和action属性的设置
loginName参数用来保存用户名
loginPass参数用来保存密码
<form method="POST" name="loginForm"
onSubmit="return checkUserInfo()" action="LoginServlet">
<table width="100%" border="0">
<tr>
<td width="15%">
</td>
<td width="12%"> </td>
<td width="29%"> </td>
<td width="44%"> </td>
</tr>
<tr>
<td> </td>
<td valign="middle" align="center"> 用户名:</td>
<td valign="top">
<input type="text" name="uname" size="19" class="input">
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td valign="middle" align="center"> 密 码:
</td>
<td valign="top">
<input type="password" name="passWord" size="20" class="input">
</td>
<td> </td>
</tr>
<%
if (session.getAttribute("user") == null) {
%> <%=session.getAttribute("msg")%>
<% }
%>
<tr>
<td> </td>
<td colspan="2" align="center">
<input type="submit" name="Submit" value="登录">
<input type="reset" value="取消">
客户订餐模块图 如图5-3:
图5-3 订餐
部分代码如下:
<td colspan="5" height="25" align=center><font color="#000000">请确认支付和配送信息</font></td>
</tr>
<tr bgcolor="#ffffff">
<td width="22%" align="RIGHT"><font color="#000000">订 餐
人:</font></td>
<td colspan=4 width="78%"><input type="text" name="cname" maxlength="20" onblur="checkName()">
<font id="us"></font></td>
</tr>
<tr bgcolor="#ffffff">
<td width="22%" align="RIGHT"><font color="#000000">送货地址:</font></td>
<td colspan=4 width="78%"><input type="text" name="address"
maxlength="200" onblur="address()">
<font id="addr"></font>
</td>
</tr>
<tr bgcolor="#ffffff">
<td width="22%" align="RIGHT"><font color="#000000">邮政编码:</font></td>
<td colspan=4 width="78%"><input type="text" name="zip"
maxlength="6" onblur="checkZip()">
<font id="5"></font>
</td>
</tr>
<tr bgcolor="#ffffff">
<td width="22%" height="31" align="RIGHT"><font
color="#000000">联系电话:</font></td>
<td colspan=4 width="78%" height="31"><input type="text"
name="tel" maxlength="13" onblur="telcalled()">
<font id="telmsg"></font></td>
</tr>
<tr bgcolor="#ffffff">
<td width="22%" height="31" align="RIGHT"><font
color="#000000">移动电话:</font></td>
<td colspan=4 width="78%" height="31"><input type="text"
name="mov" maxlength="12" onblur="telphoto()">
<font id="movmsg"></font>
</td>
</tr>
<tr bgcolor="#ffffff">
<td width="22%" align="RIGHT"><font color="#000000">应付金额:</font></td>
<td colspan=4 width="78%"> 人民币: 20元
</td>
</tr>
管理员进行菜单管理,下面介绍下添加商品的过程:添加菜单如图5-4:
图5-4 添加菜单
部分代码如下:
<td style="font-size: 23px">添加菜单</td>
</tr>
<tr>
<td>菜 名:</td>
<td><input type="text" name="foodname" width="90px" style="width: 250px"></td>
</tr>
<tr>
<td>单 价:</td>
<td><input type="text" name="foodprice" style="width: 250px"></td>
</tr>
<tr>
<tr>
<td>菜的简介:</td>
<td><input type="text" name="description" style="width: 250px"></td>
</tr>
<tr>
<td>备 注:</td>
<td><input type="text" name="description" style="width: 250px"></td>
</tr>
<td>图 片:</td>
<td align="left">
<input type="file" name="foodImg" style="width: 250px">
</td>
<tr>
<tr>
<td></td>
<td><input type="submit" value="提 交"></td
管理员查看订单列表对应的是showorder.jsp页面。如图5-5所示:
图5-5订单管理
部分代码如下:
style="FONT-SIZE: 13px; COLOR: #000000">网站首页</FONT></A><FONT
style="FONT-SIZE: 13px; COLOR: #000000"> | </FONT><A
href="#" target=_self><FONT
style="FONT-SIZE: 13px; COLOR: #000000">关于我们</FONT></A><FONT
style="FONT-SIZE: 13px; COLOR: #000000"> | </FONT><A
href="#" target=_self><FONT
style="FONT-SIZE: 13px; COLOR: #000000">网上定餐</FONT></A><FONT
style="FONT-SIZE: 13px; COLOR: #000000"> | </FONT><A
href="#" target=_self><FONT
style="FONT-SIZE: 13px; COLOR: #000000">客服中心</FONT></A><FONT
<a href="FoodGetServlet?id=<%=bean.getId()%>"><img src="images/500043.jpg" width="100" height="70" border="0" alt="点击图片查看详情"></a><br>
<font style="font-size:12px;">编号:001</font>
</td>
<td valing="top">
<font style="font-size:12px;">番茄</font><br>
<font style="font-size:12px; color:red">现价:人民币10.0元</font><br>
<font style="font-size:12px;">色香味俱全,味美可口</font><br>
<a href="FoodGetServlet?id=<%=bean.getId()%>"><img src="images/detail_cn.gif" border=0></a>
<TD align=middle><BR>
<P align=center><FONT color=#000000>Copyright ©
2011 网上订餐系统餐系统 </FONT></P>
<P align=center> </P>
//执行查询操作
public ResultSet executeQuery(String strSql)
{
try{
this.rs = stmt.executeQuery(strSql);
return this.rs;
}catch(SQLException e){
System.out.println(e.toString());
return null;
}catch(NullPointerException e){
System.out.println(e.toString());
return null;
}
}
//执行数据的插入、删除、修改操作
public boolean execute(String strSql)
{
try{
if(this.stmt.executeUpdate(strSql) == 0)
return false;
else
return true;
}catch(SQLException e){
System.out.println(e.toString());
return false;
}catch(NullPointerException e){
System.out.println(e.toString());
return false;
}
}
因为使用的是MySQL数据库,所以需要MySQL数据库的驱动
下载后请将org包放至DBConn.java所在目录下以确保该bean能正常运行。
JDK(Java Development Kit )是一切java应用程序的基础,可以说,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class。
安装好JDK后,还需要在环境变量中进行对应的配置。主要进行一下配置:
设置JAVA_HOME环境变量
JAVA_HOME的值为JDK安装的目录,例如:D:%java_home%lib\dt.jar
设置CLASSPATH环境变量,如图4-2
CLASSPATH的值表示搜索Java类的路径,例如:
D:%java_home%lib\dt.jar
更新PATH环境变量,
PATH变量是系统搜索可执行程序的路径,例如:
D:\j2sdk1.4.0\bin;
1. 一定要有msbase.jar,mssqlserver.jar,msutil.jar方件并且放到Tomcat/common/lib下。
2. 到Tomcat/conf里server.xml文件修改配置,设置Tomca\webapps的保存JSP文件的目录,目录名为Webmail,则在文件加入以下语句增加一个虚拟目录:
<Context path="/Webmail" reloadable="true" docBase="/webmail">
3. 找到数据库配置语句
<Resource name="jdbc/ipsdb" auth="Container" type="javax.sql.DataSource"/>.有3个属性name、auth、type.name项是JNDI的名称定义,程序通过JNDI才能找到此对象,这里取名jdbc/ ipsdb;auth项即连接池管理权属性,这里取值Container,申明为容器管理;type项即对象的类型,这里取值javax.Sql.DataSource。
4. 数据库密码验证配置,找到<name>username</name>将其<value>间的参数设置为数据库的用户名,例如<value>sa</value>。找到<name>password</name>将<value>间参数设置为数据库密码。本系统中数据库设置用户名为sa,密码为空。
5. 数据库url设置,找到<name>url</name>将<value>间参数设置为下面的格式:
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Webmail;user=sa;password=;</value>
数据库名为Webmail,用户名为sa,密码为空,其中127.0.0.1为当前用户使用IP地址,端口为1433。
在刚开始运行的程序中,很多汉字都是问号,不能正常显示,现有的大部分Java应用服务器都是在英语国家开发出来的,由于缺乏大字符集(中文、日文、韩文等)的应用环境,这些应用服务器在处理HTTP请求参数时都存在一些中文处理的问题.
解决这一问题的传统做法是编写额外的代码来完成字符集的转换:
public String getStr(String str)
{try{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}catch(Exception e){}
return "null";
}
参数经过次方法转换后写入数据库就不在出现乱码问题,同时在网页中加入<%@ page contentType="text/html;charset=gb2312" %>就可以解决中文问题。
随着信息产业的不断发展,各行各业信息化的建设都在以各种进行时的动作运行着。网上订餐管理系统的出现改变传统的企业、商店、大型超市管理方式。在这次毕业设计中,我独立开发了网上订餐管理系统。在这个系统中,采用的是开发语言是JSP技术.以前对JSP技术仅仅是很浅显的认识.通过这次毕业设计,使我对JSP技术有了深刻的认识,对其组件、功能、语法都有了较大的提高.从学习JAVA语言开始,学习JSP,还有JDBC技术以及JSP与数据库的连接技术等,经过这段时间的系统学习,在JSP技术方面有了很大的提高.
由于没有MIS的开发经历,同时涉及到JSP方面的内容,又对TOMCAT服务器不了解。在筹建时,耗费很多时间深入广泛的调查现有的网上订餐系统流程,但是,由于用户管理,菜品管理,订餐及订座管理在功能实现上大同小异,因此设计上没有花费太多时间,最终把精力放在了解JSP技术中,重点解决乱码问题、数据库连接问题上.
当调试出现问题是,先从细节上入手,看看自己在细节上有没有由于粗心而发生的错误,然后再进行整体上分析,有没有严重的语法错误。最终在自己的努力下,在老师和同学的帮助下解决了各种问题。
这次毕业设计实验,积累了数据库编程和网站开发的基本经验和一些基本技巧。对大型系统开发有了实质性、操作性的认识,同时对运用JSP技术有了很大的提高,对以前学到的书本知识也是个很好的巩固,同时这次设计让我意识到自己的许多的不足,锻炼了自己独立发现问题,思考问题,解决问题的能力,也掌握了一些编程的思想和技巧,使自己的编程能力也有了很大的提高。