jsp酒店预订系统mysql论文_第1页
jsp酒店预订系统mysql论文_第2页
jsp酒店预订系统mysql论文_第3页
jsp酒店预订系统mysql论文_第4页
jsp酒店预订系统mysql论文_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE59题目:基于WEB的酒店预订系统的设计与开发2011年0基于WEB的网上酒店预订系统的设计与开发摘要在高节奏生活的今天,很多酒店都已经开始使用通过互联网进行客房预订系统,这样酒店的管理就显得更加的轻松。罗曼大酒店虽然已经实施了内部的C/S结构的酒店客房管理系统,但是仍然存在上述所说的问题。本次设计将采用B/S结构的WEB应用系统,使用JSP作为开发工具,MYSQL作为数据库平台,与原C/S系统的MYSQL数据库进行无缝连接,适当的添加修改表,使得能保持在原来的系统的基础上进行升级,真正实现酒店的无纸化,电子信息化、无距离限制的进行客房信息的预订。

关键词:JSP,B/S,酒店预订,数据库THEONLINEHOTELRESERVATIONSYSTEMONTHEWEB-BASEDDESIGNANDDEVELOPMENTABSTRACTLivinginhighrhythm,manyhotelsbeginstobeputintousesubscribingtosystembythefactthatinternetcarriesoutaguestroomallalreadyatpresent,suchhoteladministrationrightawaylooklikethatespeciallyrelaxed.AlthoughtheRomanticHotelhasbeenimplementedwithintheC/Sstructureofthehotelroomsmanagementsystem,buttheproblemthatexistencestillsaysassaidornarratedabove.TheapplicaionsystemdesigningWEBwilladoptB/Sstructureoriginallytime,usesJSPtotakethedevelopmentkit,MysqlasthedatabasecarriesoutseamlessconnectionwithsystematicmysqlofplainC/S,appropriateadditionrevisesaform,cankeepwilldocarryingoutpromotiononoriginalsystematicbasiswiththenothingpaperrealizingahotelreallyspends,electronicinformation,thenothingcarryoutguestroominformationsubscribingtofromwhenrestricting.

KEYWORDS:JSP,B/S,HOTELRESERVATION,DATABASE目录第一章绪论 11.1研究背景 11.2国内外研究现状分析 11.2.1国内酒店现状 11.2.2国外酒店预订现状 21.3研究的目的与意义 31.4研究内容和研究方法 4第二章系统分析 52.1宾馆目前所存在的问题 52.2系统的需求分析 52.2.1系统组织结构的分析 52.2.2系统管理上的需求分析 52.3系统的可行性分析 62.3.1经济上的可行性分析 72.3.2管理上的可行性分析 72.3.3技术上的可行性分析 82.3.4操作可行性 82.4系统的业务流程分析 82.5本章小结 9第三章系统设计 103.1开发工具的确定 103.1.1系统开发工具的选择 103.1.2服务器的选择TOMCAT 113.2数据库及数据库连接 123.2.1数据库 123.2.2数据库连接 133.3系统功能结构的设计 143.3.1系统目标 143.3.2数据库结构设计 143.3.3项目E-R图 143.4数据库表设计 16第四章系统实现 204.1开发前的环境配置 204.2酒店前台和后台的页面设计 224.2.1前台的主页页面 224.2.2后台的主页页面 234.3数据库操作类的开发 244.4程序编码 244.4.1前台首页的开发 244.4.2分组资源列表页面 264.4.3分页的具体实现 284.4.4下达订单框架 304.4.5查看资源状态页面 314.4.6添加预订资源到订单 314.4.7查看当前订单列表 324.4.8订单提交和消息页面 334.4.9用户注册模块 344.4.10登录注销模块 354.4.11用户资料修改 364.4.12查看已提交订单页面 374.4.13查看已提交订单功能代码 384.4.14管理主页顶部实现 394.4.15管理页面的实现 394.4.16订单管理页面 404.4.17订单管理功能实现 414.4.18资源管理页面 424.4.19资源信息的查询 444.4.20资源的编辑和删除 444.4.21资源的添加 454.4.22分组管理页面 454.4.23分组的管理和删除 464.4.24分组的添加 474.4.25后台管理之管理员管理 474.5系统测试 494.5.1本系统测试 494.6系统评价 504.6.1系统性能的评价 504.6.2系统效益的评价 504.7本章小结 50第五章:研究结论与未来研究 525.1研究内容的总结(研究结论) 525.2存在的不足点及今后的研究方向 525.3结束语 52参考文献 53致谢 54基于WEB的酒店预订系统第一章绪论1.1研究背景2008年,仅一个礼拜的时间,美国金融风暴就演变成了世界金融危机,甚至还有一种说法叫世界金融海啸。由美国次贷危机引发的金融风暴已经扩展到了全球,很多国家的旅游业和酒店业都受到了不同程度的冲击,我国酒店业也不例外,不少酒店投资者和经营者已经感到一定的压力。但单从中国饭店业市场来看,金融危机对我们带来的负面影响并不大,目前国内酒店业仍在全球金融危机的影响下顽强生存、缓慢发展。虽然酒店业要准备度过一段艰苦奋斗的时光,但同时它也是一种机遇。2009年8月17日,汉庭酒店宣布,计划至2011年新开酒店300家,甚至超过现有酒店数近250家。2009年8月9日,如家酒店也宣布了相同规模的扩张计划。“金融危机过后,物业泡沫消退了,扩张成本比较低。”汉庭酒店首席运营官张拓这样解释“加速扩张”的原因。受金融危机影响严重的主要是面向国外友人的豪华型酒店,而国内经济型酒店的入住率却正逐步提高。即使面临金融危机,经济型酒店仍有理由感到乐观。越来越多的人在商务和休闲旅行中更重视实惠,一些原本预定豪华客房的顾客因预算降低而入住经济型酒店,特别是那些拥有大量的连锁店而广为人知的经济旅店,正在得到企业和个人用户的追捧。出行者选择酒店时,对价格更敏感,更加偏向使用旅游搜索引擎来进行比较,在网络上进行预订,而且各大酒店在纷纷转型,一是着力加强企业的品牌建设,不少企业在安排周期性的装修改造,利用经营单机加大投入进行改造,提升质量推出各种网上优惠措施以提高酒店入住率。二是调整经营结构,优化发展模式,加大对大众化餐饮品牌、中低端住宿产品的投入力度。三是强化内部管理,挖掘潜力控制成本提高效率。1.2国内外研究现状分析1.2.1国内酒店现状首先,从金融危机影响的地域范围来看,上海、广州、深圳等东南沿海一线城市由于经济发展较快,国际化程度较高,在此次全球金融海啸中受到的波及相对较大;而我国中西部大范围地区由于国际化程度相对较低,在这场金融危机中受到的影响也相对较小。北京、上海受影响最为严重,11月份以来,上海高星级酒店平均出租率已经平均下降了10-15%个百分点,平均房价虽然降幅较小,但随着部分企业开始大幅降低价格吸引客源,平均房价降幅有拉大的趋势。而随着2010年世博会的召开,上海及周边的地区的酒店业正逐步复苏。以国际客源市场为主的国际品牌高档酒店最为明显,出租率下降幅度高达50%。西北、东北等内陆区域受影响程度相对较轻,基本保持在平均出租率下降10-15%,平均房价略有下挫的程度。华南、江浙等区域由于当地经济较为发达,酒店业受影响不大,平均出租率基本维持在与去年同期持平或下降10%以内的程度,平均房价也基本稳定。第二,从客源市场来看,表现出旅游消费和高端商务消费明显减少的特点。全国各地酒店企业的国际旅游客人均减少了30-50%不等,国际商务客人减少比例略低,在10-15%左右。目前国内客源受影响不是很大。商务活动数量未见明显减少,但预算明显降低。以国际客人、尤其是国际旅游客人、高档商务客人为主的高星级酒店、以高档商务客人为主的高档餐饮、宾馆餐饮和以旅游接待为主的餐饮企业受影响较为明显。高档餐饮营收平均下降了10%左右,宾馆餐饮下降20%左右。经济型酒店、大众化餐饮表现出极强的抗风险能力,表现平稳。第三,随着新的劳动合同法的实施,作为劳动密集型和高流动率的住宿餐饮业出现了人力成本大幅上升的局面,企业人力成本上升幅度高达30-50%,进一步压缩了原本就微薄的利润空间,削弱了企业计划新增就业人员的能力。第四,网上预订系统成为酒店度过金融危机的有力工具。越来越多的酒店将直接的酒店预订系统放到网上,实现实时的动态订房,通过各种各样的活动,优惠措施吸引顾客,同时提高自己的知名度,走品牌连锁路线,共同度过这段艰苦时光。1.2.2国外酒店预订现状在日本,对位于东京、大阪的主要宾馆酒店进行的调查显示,日本酒店业对网络业务的依存度大大提高,在客房部的销售额中,网上预订部分所占比例已超过30%。《日本经济新闻》网站报道说,日本经济新闻社今年8月底至9月初对41家主要酒店和9家商务宾馆进行了问卷调查。针对网上业务作出有效回答的35份答卷中,有22份表示本财年网上预订在客房部销售额中所占比例将超过30%。调查同时显示,今年7月日本酒店客房部的房价与去年同期相比有所下滑。这一调查结果说明,在经济危机背景下日本酒店业面临的竞争加剧,酒店不得不进行打折促销,而更实惠的网上预订也受到越来越多顾客的青睐。在法国,一项最新公布的民意调查结果显示,2009年,金融危机使法国人外出旅游减少。法国一家专业旅游调查机构于1月13日至2月13日对1100名15岁以上法国公民进行了这项民意调查。结果显示,2009年,56法国%人曾外出旅游,与2008年相比,减少了2个百分点。数据表明,去年外出旅游法国人数量同比出现下降,主要在于商务旅游成行率下降。受到金融危机影响,2009年,4天以上长期商务旅行成行率同比下降4个百分点,与此同时,1天至3天的短期商务旅行成行率同比也下降了2个百分点。但数据也显示,电子旅游产业正在法国蓬勃发展。2009年,超过半数的法国人通过网络筹备自己的行程,还有1020万法国人完全通过网络预订行程,在所有外出旅游者中占35%。1.3研究的目的与意义基于以上背景分析,解决目前酒店预订开发过程中存在问题的主要方法在于建设符合现代网络的实时酒店预订系统,该系统可运行于任何符合基于B/S的管理平台,实现成本和管理的有效控制。使基于WEB开发的的酒店预订系统具有更强的可适应性,可以为不同操作系统,不同的用户环境提供酒店预订服务。当前罗曼大酒店的信息管理系统大都采用的是基于C/S结构的酒店预订系统,这种传统的软件模式一般只满足酒店内部管理的需要。随着Internet的飞速发展,越来越多的互联网用户想通过网络实现对酒店客房的预订和酒店入住情况的查询,享受方便快捷的服务。传统的基于C/S的预订系统只能为直接来酒店或打电话预订入住的客户服务,不能实时对外公布房间信息,使客户因得不到有效信息而预订不到满意的房间。建立基于B/S的罗曼打酒店预订房间系统不但能满足更多客户的需要和吸引潜在客户,同时还可以通过这个系统和Internet来更好地推广自己,并为现有酒店预订系统提供扩展接口,因此设计和实现本系统有着非常好的实用性和及时性。本论文希望使罗曼大酒店的酒店预订系统服务更多的用户,并试图对基于WEB的酒店预订系统进行分析与设计,主要基于以下三点原因:首先、系统符合B/S模型,这样可以保证酒店预订系统的开发具有统一性,避免重复开发与资源浪费。其次、系统是遵照现代酒店预订需求理念设计开发的,满足网络酒店预订开发所需理论指导的要求。最后、基于WEB的酒店预订系统的使用,可以简化预订过程,实时提供客房的查询、预订,提高酒店工作效率的同时也为提高酒店知名度做出一定的贡献。1.4研究内容和研究方法根据以上描述与分析,本文选择基于WEB的B/S酒店预订管理系统研究为主题,目的是要设计一个符合现代酒店预订管理一体的系统。论文详细分析了酒店系统所采用的技术和功能,目的是提高酒店工作效率。本文的研究内容主要有以下几点:(1)明确酒店预订系统的对象,并进行顾客,管理员,超级管理员分级管理,更加有效地提高工作效率(2)对酒店的功能进行需求分析,对现有数据库进行分析和修改(3)提供有效地管理机制,方便以后的维护管理(4)对系统进行安全测试,防止一些BUG和漏洞本课题的研究方法主要有:(1)文献调研法:基于WEB的酒店预订系统的研究、开发应用需要大量相关的理论支持,特别是调查、分析的结果对本课题较为重要,因此要通过文献调研获得相关资料。(2)理论研究法:基于WEB的酒店预订系统的研究要有大量理论指导,有学习理论、开发设计理论、学习策略研究、网络标准内容相关理论等。(3)原型开发法:通过对实例的原型开发以展示与验证本文的部分观点,主要使用的工具与语言有MyEclipse、Dreamweavr、JSP、JAVA、XML、JavaScript、Photoshop等。

第二章系统分析系统分析是管理信息系统结构化开发方法中的一个重要环节,是运用系统的观点和方法对原型进行目标分析,环境分析和数据分析,其主要的任务是在充分认识原型的基础上,通过问题的识别,可行性分析,系统化分析,最后完成新系统的逻辑方案设计。2.1宾馆目前所存在的问题目前不论是软件还是硬件都还暂时不能适应罗曼大酒店的需要,存在的主要问题:(1)该酒店原先的基于C/S模式的系统过于陈旧,出现大量的垃圾,造成系统运行缓慢。(2)信息处理效率低:现行系统是手工操作,所有资料、查询、统计均是人工完成。不仅速度慢,而且准确率低。另外各部门信息联系不畅,数据不能共享,重复性信息多。(3)管理基础工作与计算机化的差距:管理职能、标准化、数据格式化等均与计算机的要求有一定差距。(4)数据的维护效率低下,不易保管,容易丢失和出错,查询不方便,劳动力成本过高2.2系统的需求分析2.2.1系统组织结构的分析罗曼大酒店分客房和会议室2大部门,其中客房为罗曼大酒店的核心部门。在处理的时候将整个系统分为了客户端模块和管理端模块,其中客户端模块由客户注册登录,修改资料和密码,找回密码,查看资源信息,下达订单,查看订单等功能,管理端模块由修改密码,管理员管理,处理订单,添加资源分组,添加新资源,分组和资源的修改,分组和资源的查询,该系统的功能模块图如图2-1所示。2.2.2系统管理上的需求分析设计管理信息系统是一个质的飞跃。它基本实现了管理的智能化和信息化,有着现实的经济意义和社会效益。对于酒店而言,一次性的投入带来最明显的效果是人力资源的开销的压缩。另外,由于管理信息系统的种种特点,也给实际管理的操作带来了极大的便捷,如客人档案的管理实现了海量存储,快速查询,这些带给酒店的是工作效率的大大提高。再者计算机可以将各个服务项目的收费集中起来编制账单,而且迅速、准确、避免了繁杂的收银手续,为客人提供方便。计算机管理系统的应用将极大的改善对客服务的质量。本系统可以利用其多维性、实时性、精确性突破了原始管理手段的诸多局限性,能够将所有存量资源实行最佳配置,从而在产品组合,产品营销方面有所创新。促进产品的销售,可以增加酒店的收益。由此可见,酒店无论是从结构上还是管理上,都是需要网络的辅助,需要开发管理信息系统。图2-1罗曼大酒店管理系统功能模块图2.3系统的可行性分析可行性分析的任务,并不是所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么花费这项开发工程上的任何时间,资源,人力和经费都是无谓的浪费。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解。怎样达到这个目的呢?当然不能靠主观猜想而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。所以从以上的分析原则来看,我所要设计的信息管理系统是一个规模不太大的系统,但是目标明确,清晰了描述了对目标系统的一切限制和约束。本系统几乎在所有的酒店宾馆使用,当然它需要进一步的完善和更新,在使用过程中,要看一个他能不能带来效益,毕竟在现今社会效率是第一位的。但是从本系统的物理系统出发,导出现有系统的逻辑模型,从现实看,这还是有一定的实用价值的。2.3.1经济上的可行性分析主要是对预估费用和对项目的经济效益进行评价。在费用支出方面,不仅要考虑主机费用(如管理,维护费用),还要考虑备份费用。而经济效益应该从两个方面考虑,一部分是可以用金钱去衡量的效益,如加快流动资金周转,减少资金积压等;另一部分是难以用金钱表示的,例如提供更多的高质量的信息,提高取得信息的速度。罗曼大酒店正在努力为信息系统的建立提供良好的硬件设施,但相对与酒店原有的基础来说,主要的经济投入还是在软件的开发和维护上。此次信息系统的开发不仅可以使酒店前台工作人员的工作效率大幅度提高,节约了资源。而且在“用管理信息系统来管理现代化酒店”这一趋势下,树立了罗曼大酒店自己的企业形象。这些隐性的效益是不可估量的。2.3.2管理上的可行性分析管理的可行性分析主要是对此系统运行后带来的影响(包括组织结构,管理方式,工作环境和结果)进行估计和评价,同时还要考虑到对管理人员这些最终用户的培训,以及在给定时间里能否完成预订的系统开发任务等。首先酒店已经建立了自己的局域网和计算机维护部门,因此各个部门之间的信息传送将会变得的高速和安全可靠。其次,酒店中正准备培养能够胜任网络管理的各个层次的管理人员和工作人员,并且现已拥有了少数网络管理方面的高级技术人才,对管理好网络有一定能力。系统中的管理人员包括硬件管理人员,软件管理人员等,最终为前台的操作人员。由于系统界面是大家所熟悉的WINDOWS图形界面,在用户接口设计时又充分考虑到了易用性,亲和性,如丰富的右键弹出菜单简化了系统的操作,所以一旦系统投入使用后,便可以很快的在酒店前台全面的利用起来。2.3.3技术上的可行性分析本系统开发主要包括后台数据库的建立与维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强,数据安全性好的库。而对于后者则要求应用程序功能完备,使用灵活等特点。因此本系统建议使用Win98、Win2000Professional、Win2000Server、WinXP等操作系统,在原有MYSQL数据库上进行修改和增加。开发工具使用跨平台的JSP语言工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一功能方便而简洁的操纵数据库的智能化对象。过程中首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。经过可行性的分析(经济可行性,管理可行性,开发技术可行性)等方面论证了酒店预订管理系统的建立是可行的。2.3.4操作可行性本系统是为酒店预订系统在原先的系统添加网络功能升级开发的,面向更多的网络用户,所以本系统要设计成友好的界面,写出详细的使用说明,网络用户只需懂得简单的计算机操作知识,就能自由应用本系统。所以从以上几个方面的分析来看,开发本系统是完全可行的。2.4系统的业务流程分析业务流程分析可以帮助系统分析人员了解该业务的具体处理过程,发现系统调查中的错误和疏漏,修改系统的不合理部分,优化业务流程,为目标系统的开发打下基础。任何一个系统的开发都是针对确定的业务流程的。尤其像本系统这样一个由罗曼大酒店提出的专用的管理信息系统,所针对的业务流程就是酒店现在实行的业务流程。在进行开发之前首先要非常明确用户的业务模式。业务流程图就是在与用户接洽过程中对用户所描述的业务流程绘制成图形,使其具体化、形象化,以帮助我们确定系统结构。系统流程就是用户在使用系统时的工作过程。本系统分客户端即用户界面和管理端两个界面,首先介绍下客户端界面,用户可以在不登录的情况下浏览酒店的硬件设施,环境等一些相关细节,接下来是用户注册登录页面,对登录记录的用户名和密码和用户数据库中的数据进行匹配,然后进行下一步的操作。而管理端界面需要通过登录的管理员名和密码进行身份验证,有两种管理员身份,其中普通管理员可以对资源,分组,订单和用户进行管理,超级管理员除了拥有普通管理员权限,还可以对现有的普通管理员进行管理,可以添加和删除普通管理员,并可以重置密码。2.5本章小结本章主要是系统分析,运用系统的观点和方法对原型进行目标分析,环境分析和数据分析,在充分认识原型的基础上,通过问题的识别,可行性分析,系统化分析,完成新系统的逻辑方案设计。第三章系统设计根据系统分析阶段所获得的系统的逻辑模型而建立的系统的物理模型,是管理信息系统的系统设计。系统设计是寻求解决办法,探索建立新系统的过程。如果说系统分析阶段是解决管理系统“做什么”的问题,那么系统设计阶段则是解决管理信息系统“怎么做”的问题。系统设计的任务是:在系统分析的基础上,按照逻辑模型的要求,科学合理的进行系统的总体设计和具体的物理设计,为下一阶段是提供必要的技术资料。3.1开发工具的确定3.1.1系统开发工具的选择由于条件限制,本系统使用的是个人电脑开发。现在市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的,可用作企业级开发工具的产品有:SunMicrosystems公司的JSP语言,Zend公司的PHP脚本语言,AlexanderStreetPress公司的ASP语言。JSP本身虽然也是脚本语言,但是却和PHP、ASP有着本质的区别。PHP和ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。因此普遍认为JSP的执行效率比PHP和ASP都高。JSP是一种服务器端的脚本语言,最大的好处就是开发效率较高,JSP可以使用JavaBeans或者EJB(EnterpriseJavaBeans)来执行应用程序所要求的更为复杂的处理,但是这种网站架构因为其业务规则代码与页面代码混为一团,不利于维护,因此并不适应大型应用的要求,取而代之的是基于MVC的Web架构。MVC的核心思想是将应用分为模型、视图和控制器三部分。模型是指应用程序的数据,以及对这些数据的操作;视图是指用户界面;控制器负责用户界面和程序数据之间的同步。通过MVC的Web架构,可以弱化各个部分的耦合关系,并将业务逻辑处理与页面以及数据分离开来,这样当其中一个模块的代码发生改变时,并不影响其他模块的正常运行,所以基于MVC的Web架构更适应于大型应用开发的潮流。JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的JavaSDK(Softwaredevelopmentkit)。JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)运行效率要比SunJDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把SunJDK掌握好。3.1.2服务器的选择TOMCAT如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求。我们需要一个交互式的Web,于是便诞生了各种Web语言。如Asp,Jsp,Php等。当然,这些语言与传统的语言有着密切的联系,如Php基于C和C++语言,Jsp基于Java语言。Tomcat即是一个Jsp和Servlet的运行平台。Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型。3.2数据库及数据库连接3.2.1数据库数据库是一组特定数据集合,是提供数据的基地。它能保存数据并允许用户访问所需的数据。数据库中保存的数据是都是相关数据,为了便于保管和处理这些数据,将这些数据存入数据库时必须具有一定的数据结构和文件组织方式。数据库中的数据集合组成特定的表,表中的每一列为一个字段,每一行为一个记录,分述如下:表数据库中的表是按行与列排列表示相关信息的逻辑组。例如,一张表可以包含一个班级学生的一系列信息,诸如他们的姓名、性别、年龄和名次。字段表中的每一列成为一个字段,其中每个字段描述了它所含有的数据。创建一个数据库时,它每个字段分配一个数据类型、最大长度和其他属性。字段可包含各种字符、数字甚至图形。记录表中的每一行成为一个记录。一般来说,数据库表中的记录必须唯一。数据库建立后,为了便于查找,可以再数据库中建立索引来加快查找速度。一个索引把一个域中的数据链接到数据库上,利于索引来查找数据库上的记录,可以大大地提高查找速度。3.2.2数据库连接JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。JAVA数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。JDBC扩展了Java的功能。例如,用Java和JDBCAPI可以发布含有applet的网页,而该applet使用的信息可能来自远程数据库。企业也可以用JDBC通过Intranet将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有Windows、Macintosh和UNIX等各种不同的操作系统)。随着越来越多的程序员开始使用Java编程语言,对从Java中便捷地访问数据库的要求也在日益增加。开发员们都喜欢Java和JDBC的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务,Java和JDBC可为外部客户提供获取信息更新的更好方法。3.3系统功能结构的设计3.3.1系统目标(1)管理端功能要有权限控制,普通和超级管理员所操作管理的层次不一样管理员可更改密码,超级管理员可添加删除管理员;可以添加酒店可预订资源,如客房,会议室等,并填写资源的描述信息;可以添加新的资源分组,并填写新分组的描述信息;可以对用户订单进行管理;可以根据资源号查看资源的详细信息。(2)客户端功能用户可自行注册登录注册后可以修改自己的基本信息,修改密码等;可以浏览酒店提供的各种可预订资源,并根据自己需要下订单;客户登录后可以查看自己已提交订单的处理情况。3.3.2数据库结构设计开发一个系统之前,做好数据库分析和设计师十分必要的,良好的数据库设计,使得开发变得相对简单,而且对系统以后的更新换代有重要作用。此系统由TOMCAT+MySQL构成,是一个基于WEB的小型系统,所以在原有的MYSQL数据库进行增加和修改。同时MySQL从5.0开始支持事务,可以在Java程序里编写事务对数据进行处理,数据的完整性有了很好的保障。3.3.3项目E-R图该系统主要包括的实体有用户,酒店可预订资源,资源的组别,管理员等,下面介绍各个实体的E-R图,通过E-R图来了解各实体的属性。用户与管理员的E-R图,如图3-1所示。图3-1用户与管理员E-R图※酒店资源和分组的E-R图,如图3-2所示。图3-2资源和分组E-R图※用户订单E-R图,如图3-3所示。图3-3用户订单E-R图3.4数据库表设计本系统一共建立了6张数据库表,包括管理员表,用户表,分组表,资源表,订单表和订单明细表,下面对这些数据表逐一详细介绍。管理员表:用于记录管理员信息,该表有三个字段,分别是管理员登录名,登录密码和管理级别,详细情况如下表3-1所示。表3-1管理员表(adinfo)字段名称数据类型字段大小是否主键是否为空说明adnameVarchar50是否管理员登录名adpasswordVarchar50否否登录密码adlevelIntN/A否否管理员级别realnameVarchar50否否真实姓名telephoneVarchar20否否联系电话EmailVarchar50否否邮件地址建立本表的SQL语句如下:createtableadinfo(adnamevarchar(50)primarykey,adpasswordvarchar(50)notnull,adlevelintnotnull,realnamevarchar(20),telephonevarchar(20),Emailvarchar(50));用户表:用于记录用户的基本信息,包含用户名,登录密码,联系方式等字段,具体情况如表3-2所示。表3-2用户表(user)字段名称数据类型字段大小是否主键是否为空说明logonameVarchar50是否用户登录名passwordVarchar50否否登录密码telephoneVarchar20否否联系电话nameVarchar20否是真实姓名sexVarchar10否否性别EmailVarchar40否否电子邮件建立本表的SQL语句如下:createtableuser(logonamevarchar(50)PRIMARYKEY,passwordvarchar(50)NOTNULL,telephonevarchar(20)NOTNULL,namevarchar(20),sexvarchar(10),Emailvarchar(40)NOTNULL);分组表:该表记录资源的分组相关信息,包括分组编号,分组名,分组的描述信息,和图片等字段,具体各字段情况如表3-3所示。表3-3分组表(rgroup)字段名称数据类型字段大小是否主键是否为空说明gidVarchar50是否分组编号gnameVarchar30否否分组名称gimgVarchar60否否图片路径gdetailVarchar1000否否分组描述gorderdetailVarchar1000否否预订规则描述gpriceInt否否该分组的价格建立本表的SQL语句如下:createtablergroup(gidvarchar(50)primarykey,gnamevarchar(30),gimgvarchar(60),gdetailvarchar(1000),gorderdetailvarchar(1000),gpriceint);资源表:该表记录了酒店可以预订资源的基本信息,由于资源信息要展示给用户,所以该表包含了资源编号、所属分组、资源名称、等级、价格、资源描述和资源状态等字段,具体情况如表3-4所示。表3-4资源表(resource)字段名称数据类型字段大小是否主键是否为空说明ridvarchar50是否资源编号rgroupVarchar50否否所属分组RnameVarchar50是否资源名称rlevelVarchar10否否资源等级rdetailvarchar1000否否资源描述rstatusvarchar10否否资源状态建立本表的SQL语句如下:createtableresource(ridvarchar(50),rgroupvarchar(50)referencesrgroup(gid),rnamevarchar(50),rlevelvarchar(10)notnull,rdetailvarchar(1000),rstatusvarchar(10),primarykey(rid,rgid));订单表:该表记录了用户所下订单的信息,包括订单号、提交订单的用户、提交时间、处理人、预订状态、备注等字段,详细情况如表3-5所示。表3-5订单表(olist)字段名称数据类型字段大小是否主键是否为空说明SequencenumVarchar50是否订单编号Usernamevarchar50否否提交人RoomnumVarchar20否否分配的房间AdminVarchar20否否处理人orderformstateVarchar10否否订单状态orderdetailvarchar1000否否备注信息RoomtypeVarchar20否否房型StarttimeVarcahr50否否入住时间EndtimeVarchar50否否退房时间TotalpriceInt否否应付房钱personnumint否否入住人数建立本表的SQL语句如下:createtableolist(sequencenumvarchar(50)primarykey,usernamevarchar(50)notnull,roomnumvarchar(20),adminvarchar(20)notnull,orderformstatevarchar(10)'orderdetailvarchar(1000),roomtypevarchar(20),starttimevarchar(50),endtimevarchar(50),totalpriceint,personnumint);第四章系统实现4.1开发前的环境配置上一章介绍了本项目数据库中表的详细设计,下面将在MySQL数据库中创建这些表,并准备一些测试数据,为开发提供方便,操作步骤如下:(1)启动MySQL,打开MySQL命令行客户端MySQLCommandLineClient。(2)执行语句“usetest;”进入数据库test,开始对其进行操作。(3)执行本章介绍的创建表的SQL语句。(4)表创建完成,插入一些测试数据,其SQL语句如下:insertintoadinfovalues('wyf','123456',1);insertintoadinfovalues('wyy','wyy',0);insertintorgroupvalues('1','客房','img/room.bmp','酒店客房,有普通标间,豪华套间,单人,双人间,全部设有中央空调,卫星闭路电视、宽带上网及国内国际长途电话、安全监控等配套设施。','入住时间为下午2点,退房时间为中午12点。且只接受一周内的预订。');insertintorgroupvalues('2','会议室','img/meeting.jpg','会议室,设备先进,具备电脑,投影仪,音响等设施,环境优雅,大小兼备,服务周到,将满足你各种中小型会议的需求。','会议室预订只接受一周内的预订。以天计费。');insertintoresource(rid,rgroup,rgid,rlevel,rmoney,rdetail)values(1001,1,'101','单人标间',50.0,'单人间,可宽带上网,免费热水和早餐。浴室卫生间齐全。);(在这里只列举了一部分,完整的插入代码在DB文件夹下的“测试数据。Sql”中)本系统连接数据库用的是数据源连接池技术,在开发前需要对数据源进行配置,具体步骤如下。(1)在Tomcat安装目录下的conf目录下server。Xml中最后的</Host>标记之前添加如下配置。<Contextpath=“/jiudian”docBase=“jiudian” debug=“5”reloadable=“true”crossContext=“true”workDir=““ <Resourcename=“jdbc/jiudian” auth=“Container” type=“javax.sql.DataSource” maxActive=“100”maxIdle=“30”maxWait= username=“root”password=“hangzhou” driverClassName=“org.gjt.mm.mysql.Driver” url=“jdbc:mysql://localhost/test”/> </Context>(2)在Tomcat安装目录的lib目录下添加MySQL驱动JAR包.新建一空web.xml文件,在其中添加如下配置。<?xmlversion=“1.0”encoding=“ISO-8859-1<web-appxmlns=“http:///xml/ns/j2ee”xmlns:xsi=“http:///2001/XMLSchema-instance”xsi:schemaLocation=“/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd”version=“2.4”<resource-ref><description>DBConnection</description><res-ref-name>jdbc/jiudian</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref></web-app>配置了数据源之后,再将项目的文件结构搭建好,后门的开发就可以直接将开发的代码放到相应的目录,具体步骤如下。(1)在Tomcat安装目录下的webapps文件夹中新建一个名称为jiudian的文件夹。(2)在新建的文件夹jiudian下,新建一个CSS文件夹,这里将存放CSS样式文件,然后再图3-4目录结构图新建个img文件夹,将本系统需要用到的图片放在里面。(3)在jiudian文件夹下新建目录WEB-INF\classes.并将上一步配置的web。Xml文件复制到WEN-INF文件夹下。本章创建的目录节后如图3-4所示。其中classes文件夹下存放的为Servlet、数据库方法类等,img文件夹下存放的为系统所需要的一些图片,css文件夹下存放的是CSS文件。4.2酒店前台和后台的页面设计本系统分为前台和后台,前台面向客户,客户在前台的具体页面中可以查看资源、预订资源;后台主要是管理操作,实现对资源和订单等的一些操作管理。4.2.1前台的主页页面注册以及登陆用户进入网站后,可以浏览网站的首页,但是要预定房间,就必须进行登录,未注册的需要预先进行注册。图4-1主页面运行截图图4-2注册界面运行截图填写有关信息后进行注册,系统会提示您注册成功,转入首页进行登陆,登陆后可显示用户的用户名。如图4-3和4-4所示。图4-3用户登录后的界面运行截图图4-4已登录界面5.1.2预订如果客户想预订某个酒店,则点击该酒店中间的“查看酒店列表”或者在顶上的“酒店列表”中点击“预定”,进入订单填写页面,如图4-5和图4-6,图4-7,图4-8所示。图4-5酒店列表界面运行截图图4-6酒店预订界面运行截图图4-7酒店预订界面运行截图图4-8酒店预订界面运行截图当客户填写完所要填写的内容后按“提交预订信息”,则预订成功,系统会自动生成订单保存到数据库中。否则系统会提示您预订出错需要重新预订或者重新填写预订信息。或者客户可以点击“重新填写”,重新填写有关预订信息。图4-9“预定成功”运行截图5.1.3预订查询在用户还处于登陆状态时,用户可以点击页面的“个人中心”中查询自己的预订情况:包括:帐号、预订人等。这样用户就可以随时登陆自己的账户查询自己的预订情况,并根据这个预订情况来安排自己的时间。如图4-10即为用户Ryan的“个人中心”。图5-10“个人中心”运行截图4.2.2后台的主页页面登陆管理管理员点击首页的登录模块,正确输入管理员用户名和密码后点击登录按钮就可以进入管理员管理子系统的管理模块,当管理员用户点击重置按钮则清空所填的项目。如图4-11所示。图4-11管理员登录界面运行截图当管理员用户成功登录后,就进入了管理子系统的管理模块,管理员可以在左边看见一排管理菜单,包括“分组管理”,“资源管理”,“订单管理”“管理员设置”,“我的账户”,“会员管理”,如图4-12所示。图4-12管理员管理页面运行截图5.2.2管理员管理用户系统管理员可以通过这个模块查看用户的详细个人资料,可以删除已经存在的用户信息。当系统管理员要删除该用户信息时,点击确定将做删除操作。普通用户帐号被删除后,需要重新进行注册才能登陆网站进行相关操作。如图5-13所示。图4-13用户列表界面运行截图5.2.3订单管理系统管理员可以查看订单的详细情况,包括订单号,订单人,房间类型,房间号等,还可以删除用户的订单,便于网站数据的管理。图4-14订单列表界面运行截图4.3数据库操作类的开发开发页面之前,首先需要做好连接数据库的准备工作,这对于开发和测试有重要作用。本节将介绍数据库操作类的一些基本方法的实现,具体代码如下。※第12~22行为得到数据库连接的方法,此方法返回一个数据库连接对象。※第23~31行为关闭数据库连接的一些操作。4.4程序编码4.4.1前台首页的开发前台首页是客户进入本系统后的第一个页面,用户在此页面可以查看酒店有哪些资源分组,并可以通过大排行到达具体的资源页面,也可以实现注册和登录的功能。开发前台框架之前,需要首先搭建好前台首页的页面,其代码如下:※第12~19行判断用户是否登录,没有登录则显示登录和注册,已经登录则显示修改资料和注销等操作的链接。※第21~37行从数据库得到分组的相关介绍和图片路径,并将这些消息显示在主页页面上,这样页面就是灵活的,数据库有多少分组,就显示多少分组。在第10行导入了以个title.jsp文件,这是一个共有页面,所以单独写成一个文件,供其他的文件调用,其代码如下。※第6行用于显示一个横幅,横幅内容为调用此文件页面设置的内容。※第11~17行显示一行滚动的欢迎语,如果用户没有登录,则显示为游客。※第22~24行为一些导航的超链接。前台首页中还用到了一个数据库操作类的getgroup方法,该方法是从数据库中得到分组的描述性信息,以向量的形式返回,具体的实现代码如下;※第36行得到数据库连接,第5行创建语句对象,第7行执行查询得到结果集。※第43~44行为得到的分组信息进行转码。第40~48行便利结果集,将信息组织成向量返回。4.4.2分组资源列表页面前面介绍了首页的设计,在首页可以导航到分组资源列表的页面。在此分组列表页面里可以看到资源的介绍,包括名称,价格、描述等,可以查看资源状态,具体代码如下:※第4~13行设置了每页显示的几条记录,并得到本页需要显示的一些信息和总页数。※第20~37行用于显示预订该酒店资源的一些规则的说明,以及此预订分组资源的规则说明信息,让用户明白规则而进行预订,减少出错几率。※第21行导入的fenye.jsp文件,将在后面进行介绍。下面将本页中实现功能的业务代码进行介绍,具体分为servlet和数据库操作方法两部分。servlet的其具体代码如下:※第8~11行为servlet的init初始化方法。※第18~23行设置了编码为GBK中文编码,得到页面的动作请求action,session对象和登录管理员的ID,还声明了消息字符串,用于给用户显示提示消息。※第24~29行是从首页单击“预订分组资源”跳转动作所执行的代码,从数据库得到具体的分组的预订规则和分组下面并转发给grouplist页面。数据库方法getgroupinfo的详细代码如下:本方法是从数据库得到分组的基本信息,以向量集合形式返回。※第60~61行为SQL语句,功能为从数据库中搜索出对应gld分组的详细信息。※第63~70行将详细信息添加到向量集合中病对取出信息进行转码。4.4.3分页的具体实现上一节介绍了资源列表页面的具体实现,对于其中的一个导入文件fenye.jsp还没有介绍,这里将对其进行实现,具体代码如下:※第2~21行,得到本页要显示的资源记录信息的集合,然后用表格显示出来,对奇行和偶行采用不同颜色显示,视觉是更清晰直观。※第22~46行用于实现页面之间的跳转,如单击“上一页”,“下一页”,以及直接选择下拉列表中的值。Fenye.jsp用到了两个数据操作方法,分别是gettotal和getpagecontent,下面对其具体介绍,其具体代码如下。※第76~96行为得到总页数方法,接受两个参数,每页显示多少条记录和分组ID,返回此分组下资源记录能显示的页面。※第97~131行为得到具体页面显示内容列表的方法,接受第几页,每页显示多少条记录和分组ID的三个参数,从数据库中搜索出要显示的记录信息组织成向量返回。4.4.4下达订单框架查看资源并下达订单,首先要有一个地方供客户选择预订资源编号,开始时间、结束时间等信息,本节将搭建这样一个框架,详细代码如下:※第6~18行将本页显示的可预订的资源名称组合到下拉列表,供客户进行预订,避免客户手工输入错误。※第23~27行用于得到当前的年月日和时间,并将其初始化到导入文件ftime.jsp和etime.jsp中,也是以下拉列表形式供用户选择,目的和上面类似。本页面中第8行用到的order_db类,此类是对订单的一些数据库操作,这里用到其中的isordered方法,具体代码如下:

※第6~8行声明了此类中要用到的数据库连接、语句对象和结果集对象。※第9~29行为isordered方法,资源的状态为空闲、占用、预订中等状态,其中占用和预订中要给客户提示消息为预定中,即不可以预订,避免错误发生。4.4.5查看资源状态页面在客户编辑预订资源的开始时间和结束时间等信息之前,应该可以查看资源状态,确定其是否可以预订,然后再下达订单,查看资源状态的页面代码如下:※第5~7行得到该资源状态信息,如不可预订,可以预订等信息。※第13~38行将得到的资源状态信息按不同情况显示在页面。4.4.6添加预订资源到订单上一节只是开发出一个可以编辑预订某一资源的信息框架,具体的功能还没有实现,这里开始介绍得到处理部分,首先对添加预订资源到订单开始。下面order.jsp页面表单的响应代码。※第17~23行设置了页面编码为中文GBK编码,得到页面响应请求、session对象,登录的用户名※第25~30行声明了资源的几种状态的字符串形式、得到订单列表对象、如果得到订单列表对象为null值,则创建一个vector类对象作为订单列表对象※第34~53行为响应页面请求添加到得到的代码,其从下达订单框架的表单得到预订信息,将其添加到订单列表中,第54行重定向到grouplist页面。4.4.7查看当前订单列表在添加了一些资源到订单后,用户应该可以查看已经遇到了哪些资源,因此要开发出查看当前订单的页面,具体代码如下:※第8行从session得到订单列表。※第14~33行根据列表是否为空进行显示,为空则提示客户当前没有订单,不为空则显示其中内容,并在每条记录后添加一个表单,用于删除此条预订记录。※第34~51行在订单列表尾部添加两个表单,用于情况订单和提交订单操作。4.4.8订单提交和消息页面上一节实现了查看订单列表,并可以对订单进行删除、清空和提交等操作,现在开发提交订单的数据库操作,其详细代码如下:提交订单的数据库方法本方法是将订单的基本信息插入数据库,以用户名和订单信息集合为参数,执行更新数据库,具体实现代码如下:※第72~96行,向订单表插入一条订单记录,并得到此订单的详细信息,生成SQL语句,执行更新操作将订单明细插进数据库,由于更新的是两张表,用到了事务进行处理。※第97~102行为一旦出现错误,进行回滚操作,将i赋值为-1表明订单提交失败。4.4.9用户注册模块用户填写了完整的资料进行注册时,功能代码接受此动作,然后进行处理,将用户信息插入数据库并给出用户提示信息。1.Servlet处理注册动作的代码用户进行注册时,此段代码从页面得到用户填写的信息,判断是否可以注册而执行不同功能,具体代码如下:※第28~33行为得到用户在注册页面填写的注册资料。※第35~45行判断得到的注册用户名是否存在,并根据不同的结果执行不同的代码,然后给用户显示注册结果消息。2.执行注册功能的数据库方法执行注册的时候要用到查询和更新数据库的方法,比如查询某个用户名是否存在、更新数据库等方法,下面给出具体代码:※第151~164行为判断数据库中某一条记录是否存在,根据是否存在返回true或false。※第166~177行为执行更新受到的SQL语句,返回更新记录条数。4.4.10登录注销模块上一节介绍了用户注册模块,本节将介绍登录和注销的实现,这里详细介绍登录操作的处理,此功能代码从登录页面得到用户名和密码,然后查询数据库,具体代码如下:※以上代码为登录动作处理的代码,判断用户名是否存在,然后判断密码是否正确,根据不同结果给出不同提示消息,登陆成功则跳转到主页。4.4.11用户资料修改用户注册后,可以修改其注册时填写的资料,比如修改电话号码、个人邮箱等信息,修改资料页面的代码如下。※第11~17行为根据当前session保存的登录用户名,得到用户的详细资料。※第18~19行导入的两个文件changinfo.jsp和changeped.jsp,前者是搭建修改资料的页面,后者是搭建修改密码的页面。上面只是搭建了一修改资料和密码的页面,具体功能代码还没有实现,下面给出功能代码的实现。1.Servlet处理修改资料和密码的功能代码※第80~93行为修改资料的功能代码,首先得到修改后资料,然后执行更新。※第94~113行为修改密码的功能代码,对修改成功或失败分别给出相应的提示消息。2.得到用户信息的数据库类方法前面用到了从数据库中得到用户详细资料的方法,此方法从数据库得到用户资料,如电话、姓名、性别等信息,其详细代码如下:

4.4.12查看已提交订单页面本页面将已提交的订单显示给用户,如果客户没有提交任何订单,则给出提示信息,如果存在已经提交的订单,则以表格形式显示订单列表,具体代码如下:※第11行得到该用户已提交订单列表。※第12~37行判断用户订单列表是否为空,为空则显示提示信息,不为空就将其显示给用户,并对每行设置不同的显示颜色。4.4.13查看已提交订单功能代码上一节只是给出页面显示的代码,没开发出其实现功能的代码,这里将详细介绍。1.servlet处理查看已提交订单响应代码用户单击“已提交订单”按钮查看自己的订单状态时,将触发执行此功能代码,主要是从数据库得到用户的订单信息并将其传回显示页面,具体代码如下:

※第86~99行得到用户所有提交订单的列表,并将其转发给显示页面。※第100~106行查看某一订单详情,并将详情信息转给给显示页面。2.得到订单信息的数据库操作方法得到订单列表和订单详情,分别是两个不同的方法,前者得到订单记录,后者得到此订单对应的基本信息,如预订了哪些资源,预订时间等,具体实现代码如下:※第106~124行为得到某一用户订单列表的方法,接受SQL语句为参数,执行查询然后将订单列表信息返回。※第126~150行为得到某以订单详情的方法,接受订单编号为参数,执行查询,将订单详细信息发回。4.4.14管理主页顶部实现后台管理页面的顶部是一些导航的链接,单击这些链接可以进入不同的管理页面,下面给出开发管理页面的顶部的实现。具体的代码如下:

※第11~13行判断是否有管理员登录,假如有,则给出滚动欢迎语。第20~26是顶部的一些不同管理功能页面的超链接代码。Admintop.jsp是一个公共页面,供所有管理页面调用而显示导航链接。4.4.15管理页面的实现管理的页面提供了一个管理员登录的窗口,如果没有登录,则单击任何管理功能导航的链接都是无效的,提示管理需要登录,下面给出其功能代码的实现:※第115~132行为管理员登录的功能代码,从页面得到管理员登录名和登录密码。然后和数据库里面的正确密码进行比较,根据不同结果给出不同响应。※第133~140行实现了管理员注销的功能,和前台的用户注销类似。4.4.16订单管理页面开发实现管理功能前首先开发出订单管理页面,订单管理页面具体代码如下:※第25~36行为订单管理中按条件显示订单列表的一些链接选项,如“所有订单”,“已处理订单”和“未处理订单”,并搭建一个订单搜索功能的表单,实现按订单号搜索表单功能。※第45~79行为根据当前条件搜索得到的订单列表是否为空进行不同显示,为空则提示“没有订单”,不为空则以表格显示。4.4.17订单管理功能实现前面只是给出了订单管理的页面搭建代码,功能还没有实现,下面给出实现订单管理的详细功能代码。1.servlet端订单管理响应代码订单管理主要是根据不同条件列出不同状态的订单、查询订单和处理订单等操作,下面给出实现不同功能的servlet端代码。※第108~132行为管理员单击“订单管理”按钮进入订单页面和在订单管理页面单击“所有订单”按钮、“已处理”按钮和“未处理”按钮的响应,根据不同请求从数据库中搜索出不同的订单列表集合返回。※第133~144行为订单查询的响应代码,接受订单编号参数进行查询订单。※第145~163行为处理订单的响应代码,根据从页面参数决定用户是否预订成功,根据数据库处理订单结果返回不同的消息到页面。2.数据库操作类DB中用于处理事务的方法此方法用于更新订单表和订单明细表中的订单状态和备注,如“预订成功”,“预订失败”,预订失败则在备注中给出失败原因。4.4.18资源管理页面本页面和前台的grouplist页面类似,将资源进行分页显示,需要开发页面有adminrestop.jsp、adminfenye.jsp、adminresource.jsp。资源管理页面除了顶部的导航链接以外,还需要开发资源管理本身的导航链接,具体代码如下:※第20行为“添加资源”的超链接,单击此链接跳转到添加资源页面。※第39~45行为从数据库得到所有分组,在页面显示分组名,并实现单击分组名使页面显示此分组下资源列表的功能。资源管理页面顶部实现后,就可以开发资源管理主页面了,具体代码如下:管理员单击“资源管理”,进入资源管理页面,默认显示所有分组的资源,下面给出进入此页面执行的代码。上述代码的58行用的forward方法,是将消息转发到显示页面,代码如下。4.4.19资源信息的查询在资源管理页面,可以进行资源的查询,输入资源编号,单击“查询”按钮,即查处所对应资源的信息。下面给出此功能是的实现代码。1.Servlet端资源查询响应代码管理员在资源查询文本框中输入资源编号执行查询动作时,此servlet端代码执行,接受资源编号参数,调用数据库方法搜索得到资源信息并返回。2.数据库操作类DB中查询资源信息的方法此方法根据SQL语句从数据库里得到资源组别、规格、价格、描述和状态等信息,并组合成集合返回,具体代码如下:4.4.20资源的编辑和删除当用户在资源管理页面单击了某一资源的“修改/删除”按钮后,会跳转到此页面,将资源的详细信息显示,供用户编辑或删除,详细代码如下。※第70~76行为单击“修改/删除”按钮后,servlet端将资源信息显示在修改删除页面。※第77~107行为修改资源的信息,对修改后的信息进行判断,是否可以将修改的信息存入数据库,并给出结果信息提示。4.4.21资源的添加下面给出显示资源添加的servlet端的业务功能代码:

※第121~126行从页面得到要添加资源的详细信息,并拼装查看此数据库中此ID对应记录是否存在。※第127~141行为查看数据库中要添加资源编号是否存在,如果存在则提示错误,不存在则执行添加资源的动作,添加成功给出提示信息并转发到显示页面。4.4.22分组管理页面前面介绍了资源管理的开发,本节将介绍分组管理的开发,分组管理主要有添加、删除和修改等操作,分组管理页面搭建的代码如下:※第9行从数据库得到全部分组信息的列表。※第19~29行信息显示在页面上,奇数行和偶数行颜色设置不同。※第32行添加分组的超链接,链接到添加分组页面。4.4.23分组的管理和删除在分组管理页面,单击某一分组后的“修改/删除”按钮后,链接到编辑或删除分组页面。此页面实现编辑、删除分组功能的代码如下:※第152~157行为单击“编辑/删除”按钮时执行的代码。从数据库得到此分组的具体信息并转发到编辑删除页面进行显示。※第158~186行为编辑分组信息并保存的功能,对修改分组的各种情况进行判断,不同情况执行不同的功能,并给出相应的提示信息。※第187~198行为在编辑/删除分组页面的单击“删除”按钮删除分组的功能,从页面得到分组的ID,然后进行删除并给出操作消息。4.4.24分组的添加上面介绍了分组的删除/修改,下面介绍分组的添加,具体的代码如下:※第202~206行从页面得到管理员填写的分组信息,并拼装成SQL语句。※第207~215行为执行添加分组的操作,根据添加成功和失败给出不同提示信息。4.4.25后台管理之管理员管理对于管理员的管理,需要注意以下几点1.超级管理员可以进行管理员管理,所以进入管理员管理页面之前要进行权限判断,数据库中用数字“1”表示超级管理员,“02.超级管理员可以重置管理员密码,查看管理员列表。3.超级管理员可以添加删除管理员其具体代码如下:※第217~233行为单击“管理员管理”按钮执行的代码,先判断管理员是否登录,然后判断管理员级别是否是超级管理员。※第234~248行为添加管理员时所执行的代码,从页面得到添加管理员的信息,执行数据库更新。※第249~261行为超级管理员删除其他管理员账户的执行代码,进行必要判断而不能删除自己。※第262~273行为超级管理员重置其他管

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论