为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 基于J2EE的酒店客房网上预订与管理系统的设计与实现 毕业论文

基于J2EE的酒店客房网上预订与管理系统的设计与实现 毕业论文

2018-03-20 47页 doc 296KB 34阅读

用户头像

is_496339

暂无简介

举报
基于J2EE的酒店客房网上预订与管理系统的设计与实现 毕业论文基于J2EE的酒店客房网上预订与管理系统的设计与实现 毕业论文 基于 J2EE 的酒店客房网上预订与管理系统的设计 与实现 摘 要 现在已经步入到信息化时代,计算机网络的使用也越来越受欢迎,例如:淘宝、网上书城、网上订票等。计算机最大的好处在于它能够进行信息管理,使用计算机进行信息控制,不仅大大提高了其安全性,而且提高了工作效率。尤其是对复杂的信息管理能够很好地发挥其优越性。 通过对酒店预订市场的调查和分析,并比较和借鉴现有的一些酒店客房网上预订与管理系统的开发技术,借鉴现有一些系统的布局的优点,设计和开发了基于 J2...
基于J2EE的酒店客房网上预订与管理系统的设计与实现  毕业论文
基于J2EE的酒店客房网上预订与管理系统的设计与实现 毕业 基于 J2EE 的酒店客房网上预订与管理系统的设计 与实现 摘 要 现在已经步入到信息化时代,计算机网络的使用也越来越受欢迎,例如:淘宝、网上书城、网上订票等。计算机最大的好处在于它能够进行信息管理,使用计算机进行信息控制,不仅大大提高了其安全性,而且提高了工作效率。尤其是对复杂的信息管理能够很好地发挥其优越性。 通过对酒店预订市场的调查和,并比较和借鉴现有的一些酒店客房网上预订与管理系统的开发技术,借鉴现有一些系统的布局的优点,设计和开发了基于 J2EE 的系统架构的酒店客房网上预订与管理系统。本系统采用基于 J2EE 的系统架构,采用Spring+Struts2+Hibernate三层框架技术开发,并在MyEclipse 10.0下完成程序的编写和编译,并将系统最终部署在Tomcat 6.0服务器中。 现有的一些酒店客房网上预订与管理系统大多是基于ASP.net技术开发的,基于 J2EE 系统架构的酒店客房网上预订与管理系统还不多,众所周知,基于 J2EE的三层框架在许多技术指标上优于ASP.net技术,因此,本系统在设计和实现技术上是比较好的,这也是本系统的优势所在。 论文介绍了酒店客房预定与管理系统的需求分析;系统整体设计和架构;类图及系统的E-R图;数据库表的设计;系统的关键技术和软件架构,本系统主要功能模块的界面设计与程序设计。本系统的主要功能模块包括:酒店搜索、酒店预订、在线留言、公告浏览、用户管理、酒店管理、客房管理、订单管理、公告发布与维护等功能模块。最后介绍了系统测试的方法、步骤和测试的结果。 关键词:酒店客房网上预订;三层框架技术;软件架构;软件测试 I Design and Realization of Hotel room online Booking and Management System on the J2EE Abstract Now we entered into the information age, the use of computer network is becoming more and more popular, such as: taobao, online bookstore, online booking and so on. The greatest benefit of computer is that it can information management, use the computer to control information, not only greatly improved its security, but also improve the working efficiency. Especially for the complex information management is able to exert its superiority. Through the hotel reservation market research and analysis, and to compare and learn from some of the existing hotel rooms online booking and management system development techniques, learn some of the advantages of the layout of the existing system, the design and development of a system architecture based on J2EE hotel Room online booking and management systems. The system uses a system based on J2EE architecture, using Spring + Struts2 + Hibernate three framework technology development and complete programs written and compiled under the MyEclipse 10.0, and the system will eventually be deployed in Tomcat 6.0 server. Some existing online booking hotel rooms and management system is mostly based on ASP.net technology development, based on the J2EE system architecture of hotel rooms, there are few online booking and management system and it is well known that the three layers framework based on J2EE technology on many technical indicators are better than ASP.net, as a result, this system is better in the design and implementation technology, which is also the advantage of this system. This paper introduces the requirements analysis of the hotel reservation and II management system; Overall system design and architecture; Class diagram and system of E - R diagram; The design of the database table; The key technology of system and the software architecture, this system main function modules of interface design and program design. The main function modules of this system include: hotel search, hotel reservation, online messages, announcements, browse, user management, hotel management, hotel management, order management, announcement and maintenance, and other functions module. Finally this paper introduces the method of system test, the steps and test results. Key words: Hotel Room Online Booking; Three Layers Framework Technology; Software Architecture; Software Testing II 目 录 中文摘要............................................................................................ I 外文摘要.......................................................................................... II 1 绪论 ............................................................................................ 1 1.1 项目研究背景 ................................................................... 1 1.2 项目研究意义 ................................................................... 1 2 系统分析 ................................................................................... 3 2.1 系统设计面临的主要问题 ............................................... 3 2.2 系统需求分析 ................................................................... 4 2.2.1 系统需求概要分析 ................................................... 4 2.2.2 客房预订功能模块分析 ............ 错误~未定义书签。 2.2.3 系统管理功能模块分析 ............ 错误~未定义书签。 2.2.4 系统用户角色分析 ................................................... 7 2.3 系统开发环境和运行环境 ............................................... 8 3 系统整体设计和架构 ............................................................ 10 3.1 系统关键技术介绍 ......................................................... 10 3.2 三层架构 ......................................................................... 14 3.2.1 表现层 ...................................... 错误~未定义书签。 3.2.2 业务逻辑层............................... 错误~未定义书签。 3.2.3 数据访问层............................... 错误~未定义书签。 4 系统数据库设计和实现 ........................................................ 17 II 4.1 MySQL简介................................................................... 17 4.2 系统E-R图 .................................... 错误~未定义书签。 4.3 系统类图 ......................................... 错误~未定义书签。 4.4 数据库主要表结构设计 ................................................. 19 5 界面设计与程序设计 ..........................错误~未定义书签。 5.1 界面设计 ......................................... 错误~未定义书签。 5.1.1 酒店预订模块界面设计 .......................................... 23 5.1.2 酒店管理模块界面设计 .......................................... 24 5.2 程序设计 ......................................... 错误~未定义书签。 5.2.1 酒店搜索功能程序设计 .......................................... 26 5.2.2 酒店预订功能程序设计 .......................................... 27 5.2.3 公告显示功能程序设计 .......................................... 28 5.2.4 会员管理功能程序设计 .......................................... 29 5.2.5 酒店管理功能程序设计 .......................................... 30 5.2.6 客房管理功能程序设计 .......................................... 32 6 系统测试 ................................................................................. 34 6.1 测试的基本概念 ............................. 错误~未定义书签。 6.1.1 测试的目的............................................................. 34 6.1.2 测试 ................................................................ 34 6.2 测试的步骤 ..................................................................... 34 结 论 ............................................................................................. 36 参考文献......................................................................................... 38 II 致 谢 ...........................................................错误~未定义书签。 外文原文及译文 ............................................................................ 40 II 1 绪论 1.1 项目研究背景 现在已经步入到信息化时代,计算机网络的使用也越来越受欢迎,例如:淘宝、网上书城、网上订票等。计算机最大的好处在于它能够进行信息管理,使用计算机进行信息控制,不仅大大提高了其安全性,而且提高了工作效率。尤其是对复杂的信息管理能够很好地发挥其优越性。 大多数人都是每天忙于工作,在放假或休息时间里都很希望能够简单、快捷、方便的生活,尤其是每年的五一、十一长假,上班一族都很希望能够有个轻松的旅行。但是旅游时的住宿也是一个很大的问题,没有时间去实地考察旅游地的酒店。这样一来网上酒店预订系统就有了很大的需求量,也因此出现了很多专职从事制作酒店预订与酒店管理系统的公司。 酒店客房网上预订与管理系统不仅给用户带来了便利,也给各个酒店的管理带来了很多好处。传统的手工记录,电话联系的方式,消耗大量的人力、物力,而且执行效率低,容易出现错误。通过该系统,就可以简单的实现管理和快速查询,不仅减少了酒店方面的管理工作量,节约酒店的人力成本;而且客户完全可以随时随地的进行远程预订,这既加大了酒店的竞争力,还方便了客户,从而给酒店带来更多的客流量。根据目前市场和用户的需求情况开发酒店客房网上预订与管理系统是十分有必要的。 1.2 项目研究意义 虽然酒店客房网上预订与管理系统已经相当普及,但是现在仍然存在一定的问题,主要表现在以下几个方面: (1)现在很多客房预订与管理系统都是针对中小型酒店宾馆设计的,而现在酒店正向个性化方向发展,酒店按其经营方式可分为商务型酒店、长住型酒店、度假型酒店等等;按其经营形式可分为独立经营饭店、集团经营饭店等,所以我们很需要有一个系统能够把所有类型的酒店全部包括起来,并且能够根据其类型进行鲜明的分类。 (2)服务流程和管理存在不合理的地方,有时客户端的数据更新不是很速度,可能造成客户端和服务器端的数据不统一,即统计数据无法做到及时准确。 1 (3)系统的可扩展性差,缺乏外部接口,系统在复杂的网络环境中生存性较差。 (4)目前酒店客房网上预订与管理系统虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。 以上是酒店客房网上预订与管理系统存在的问题,制约了酒店经营模式的壮大,影响了用户对网上酒店预定的可信性。随着现代科学技术的发展,新型的计算机网络和酒店预订及管理系统的产生,竞争环境越来越激烈,酒店经营除了降低成本、提高质量外,更需要以先进的管理技术和前瞻性的管理理念来整合酒店内部资源和各酒店之间的资源和信息。因此,开发一个网络可靠性好、系统兼容性强、业务和管理流程好、系统实时性和数据准确的酒店客房网上预订与管理系统能够促进酒店管理科学化、正规化,也是重新获得用户肯定和信任的重要条件。 (5)现有的一些B/S结构的酒店客房网上预订与管理系统大多是基于ASP.net技术开发的,基于 J2EE 系统架构的酒店客房网上预订与管理系统还不多。众所周知,基于 J2EE的三层框架在许多技术指标上优于ASP.net技术,因此,本系统在设计和实现技术上是比较好的,这也是本系统的优势所在。 2 2 系统分析 2.1 系统设计面临的主要问题 通过项目建设初期的分析和调研发现,酒店客房网上预订与管理系统设计和开发需要解决的问题主要有以下几个方面: (1)酒店分类模式比较多,类型多样化。由于中国市场很大,人口很多,所以不管是不是省汇城市,各地都有很多的酒店或旅馆。这样一来前期的信息量就很大,要想得到一个很全面、真实的各酒店信息也是一件困难的事情。 (2)系统的用户量比较大,这样就要要求服务器的功能足够强大,能够允许大量用户同时在线和同时提交订单。就像火车票网上购票系统在使用前期遇到假日高峰期时用户量太大导致服务器挂掉了,一个功能强大的服务器也是一个特别需要注意及解决的问题。 (3)酒店数据信息庞大,格式也多样化。不同的酒店有着不同的配置、服务等。尤其是各个酒店的图片格式各不相同,所以系统设计需要对不同的数据进行解析,当上传酒店图片时需要判断上传的格式是不是正确,以及规定图片的显示格式。 (4)大量的信息数据如何在服务器端正确、有效和实时的存储。由于酒店的信息本来就很多,而且每个酒店有着不同的客房信息,所以信息数据规模是相当庞大的。这样就要求数据提供者或维护者要不断实时的将数据提供给管理人员,管理员要在第一时间进行数据更改,以保证大量数据的正确性、有效性。 (5)本系统如何吸引更多的用户以及取得他们的信赖。以为现在市场上已经有很多酒店预订与管理系统,要想使该系统能够更好地吸引用户就需要丰富可信的信息来源、稳定强大的系统功能、新鲜多样的界面设计等等。 当然,除了以上几个问题,系统设计还面临许多其他问题,例如酒店客房的价格定位问题,如果系统中个预订报价高于其他系统,那无论本系统的功能如何,用户都会喜欢和选择预订价低的系统。这就好比我们自己在买东西一样,都会货比三家的,这就需要实时关注同行的动态,了解用户的最新需求和酒店一方的最大利益。在酒店一方追求高利润的需求下,用户想要选择最优惠划算的行为都给酒店客房网上预订与管理系统的数据采集的准确性和实时性提出了巨大的挑战。 3 2.2 系统需求分析 2.2.1 系统需求概要分析 随着时代的不断发展,人们的生活节奏也越来越快,为了节省时间和精力,网上消费也成为了我们的首选,其中酒店网上预订也成为一种新时尚并逐渐被更多的人接受。用户不再需要夹杂在人来人往的街市里,不再需要亲自去各个酒店询问,也不需要不停的用电话沟通,只需要坐在计算机前,就可以在预订系统中方便的查询并预订自己需要的客房。 酒店网上预订与管理系统最重要的功能就是购物车,因为有时用户根据需要不止预订一家酒店的客房,如果用户每预订一次客房就需要提交一个订单(一般提交订单时,都需要用户填写大量的信息,例如联系方式、入住时间和退房时间等),那么用户操作时会很繁琐,而且对酒店管理一方来讲也不方便。 所以,根据以上的需求分析将酒店客房网上预订与管理系统分为用户网上预订和管理员系统管理二大功能模块,系统的功能模块结构图如图2.1所示。 酒店客房网上预订与管理系统 系统管理网上预订 注修酒客我我退用订客酒册改店房的的出户单房店与个搜预购订系信管信信登人索订物单统息理息息录信车管管管息理理理 图 2.1 系统功能模块结构图 酒店客房网上预订与管理系统的用例图如图2.2所示。 4 酒店客房网上预订与管理系统 删除会员<>登录 <>修改会员信息<><>会员信息管理退出登录<><><> <><>修改注册信息<>查看留言<>留言管理<><><>留言修改留言查看订单<><>管理员会员<>酒店信息管理<>客房预订<>修改酒店信息<><>购物车管理<><> 删除酒店信息下订单<>客房信息管理放入购物车<>修改客房信息 酒店搜索订单管理修改客房信息 <><><> 修改订单信息删除订单信息<>注册 普通用户 图 2.2 系统用例图 2.2.2 客房预订功能模块分析 客房预订功能模块主要包括:酒店搜索模块,客房查询模块,立即预订模块,购物车模块和个人订单模块。客房预订功能模块为用户提供界面,用户登录系统成为会员后选择预订按钮,根据提示填写自己的预订信息,确定预订信息后就完成了客房预订。客房预订功能模块结构图如图2.3所示。 客房预订程序 客房查询立即预订酒店搜索个人订单购物车 所基填确预按按按处取按预属本写定订城价品理消星订酒信预预成市格牌订订级客店息订订功搜搜搜单单搜房信信索索索索的息息信息 图 2.3 客房预订功能模块结构图 5 客房预订的5个主要功能模块的功能分别如下。 (1)酒店搜索模块功能 酒店搜索模块分为按酒店的城市、价格、星级和品牌搜索四个小的模块。按酒店所在的城市搜索模块主要用于在确定了自己所要去的城市的情况下,缩小检索的范围;按酒店价格搜索可以帮助用户规划自己的旅游经费,同时不同价格的酒店其设施配置也是有很大区别的;按星级搜索主要适用于那些重视酒店级别评价的用户选择;按品牌搜索主要适用于习惯使用某一品牌或喜欢某一品牌的酒店的用户。 (2)客房查询模块功能 客房查询模块是根据酒店搜索后得到的结果,即用户选择自己需要或喜欢的酒店后可以查询该酒店的所有客房信息。 (3)立即预订模块功能 立即预订模块是用户查看了某一酒店的某种类型的客房后感觉很好就可以直接预订,也适用于只需要一种类型客房的用户。 (4)购物车模块功能 购物车模块主要包括以下几种情况:用户所需要的客房类型比较多,不方便一次性预订;用户还不能决定要预订的客房等。 (5)个人订单模块功能 购物车提交成功后将生成一个订单。登录后的用户可以查看自己所有的订单,也可以删除自己的订单。 2.2.3 系统管理功能模块分析 系统管理功能模块主要包括:公告管理模块,酒店管理模块,客房管理模块,用户管理模块和订单管理模块。系统管理功能模块为系统管理员提供界面,为管理员根据自己的权限及系统的需求对相关模块的数据进行相应的管理,如数据的增删改查等操作。 6 系统管理程序 公告管理酒店管理客房管理用户管理订单管理 增修增修发修删增修删删删订订订加改加改布改除加改除除除单单单客客用用公公公酒酒酒客用添修删房房户户告告告店店店房户加改除信信信内信信息息息容息息 图 2.4酒店管理功能模块结构图 系统管理的5个主要功能模块的功能分别如下。 (1)公告管理模块功能 公告管理模块主要是对本网站相关公告的发布与维护,管理员可以将最新公告内容发布到系统首页,也可以将已经过时或没用的公告删除以及修改已发布公告的内容。 (2)酒店管理模块功能 酒店管理模块主要是查询酒店信息、添加酒店、修改酒店信息和删除酒店。 (3)客房管理模块功能 客房管理模块主要分为以下几种情况:查询客房信息(以及该客房所属的酒店信息)、添加客房、修改客房信息和删除客房。 (4)用户管理模块功能 管理员可以查看所有会员的信息,也可以对其信息进行相关的操作,如修改用户的信息或删除该用户,以及增加新的用户。 (5)订单管理模块功能 订单管理模块主要分为以下几种情况:查询订单和处理订单(将未处理的订单修改为已处理的订单)。 2.2.4 系统用户角色分析 根据对酒店客房网上预订与管理系统的分析和调研,系统中的用户角色分为以下三类:系统管理员、会员和一般用户。 7 系统用户角色 系统管理员普通用户会员 图 2.5 系统用户角色图 三类用户角色的权限设定如下。 (1) 系统管理员功能权限 系统管理员对整个系统进行维护和管理,保证系统的正常运行。主要是针对会员信息、酒店信息、客房信息、订单信息的管理,以及公告板的发布与维护。 (2) 会员功能权限 根据需求选择想要预订的客房,填写相关预订信息后实现网上预订客房。还可以在线留言发布自己的意见或建议。 (3) 普通用户功能权限 只能根据自己的权限对酒店进行查询以及查看网站的基本信息介绍与公告板的相关信息。 2.3 系统开发环境和运行环境 关于J2EE和.NET之间的讨论已经持续很多年了,到底哪个更具有优势仍然很难下结论。事实上,.NET和J2EE都各有所长,两者都是十分优秀的开发平台,短时间内谁也不能替代对方。J2EE与.NET技术架构的比较如下: (1) 移植性比较 在移植性方面,.NET支持跨语言,J2EE支持跨平台。J2EE通过Java虚拟机来消除平台差别,几乎所有的主流操作系统都提供了对J2EE的支持;如果需要跨Unix、Windows等多个操作系统平台时,J2EE平台在目前几乎是唯一的选择。为了吸引更多的开发者和企业厂商使用.NET平台,微软通过通用语言运行时来消除编程语言的差别,希望用跨语言的交互性来平衡跨平台的互操作。 (2) 安全性、稳定性比较 WINDOWS本身的安全漏洞,使得.NET的安全性比不上J2EE。而且在选择应用服务器时,.NET只能用IIS,稳定性和安全性很难保证;但J2EE可以根据需要选择成本最低,各方面最佳的平台。 (3) 可扩展性比较 8 .NET平台的扩展思想是基于软件的横向扩展,而J2EE是基于硬件的纵向扩展。J2EE领域的供应商提供了广泛的负载平衡策略,能够消除系统中的瓶颈,允许多台服务器集成部署。 (4) 第三方厂商的支持 .NET架构的一小部分具有开放性,但目前很难想象一个非微软的.NET实现,Visual Stdio.NET是唯一的开发工具。而J2EE作为一种开放的规范,从一开始就得到了很多厂商的支持(如IBM、BEA、Oracle等)。目前市场上最好的J2EE应用服务器是BEA的WebLogic和IBM的Webshpere。开发工具也有很多,如Oracle的JDeveloper、IBM的VisualAge for Java、Sun的Forte for Java等。 根据上述分析以及个人的熟练程度和喜好,本系统选用的是基于 J2EE 的系统架构,采用Spring+Struts2+Hibernate三框架开发,并在MyEclipse 10.0下完成程序的编写和编译,并将系统最终部署在Tomcat 6.0服务器中。 以下是系统的运行环境: , 操作系统:Win7 , 数据库: MySQL , Java运行环境:JDK l.6.0 , Web服务器:Tomcat 6.0 , 开发框架:Struts 2 + Spring 2.5 + Hibernate3.2 , 开发工具:MyEclipse 10.0 9 3 系统整体设计和架构 3.1 系统关键技术介绍 (1) J2EE技术 J2EE是一种利用Java2平台来简化诸多企业级应用解决方案的开发、部署和管理相关复杂问题的体系结构,提供了一个企业级的计算模型和运行环境用于开发和部署多层体系的调用。它通过提供企业计算环境必需的各种服务,是的部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。不同计算平台都可以支持Java语言,使得J2EE标准开发的应用可跨平台的移植,且由于Java语言的安全、严格,使得开发者可以编写出非常可靠的代码。J2EE提供了企业计算中需要的所有服务,且更加易用;并为多数标准定义了接口,如JNDI,JDBC,Java,Mail等。可与许多厂商的产品配合,容易得到广泛的支持。 (2) Tomcat连接池 数据库连接池是解决重复建立数据库连接时,耗损系统资源问题的一门技术。一个网站的访问速度成功与否的关键,但是很多的网站应为重复建立耗损资源的数据库的连接,使得访问速度达到无法跨越的瓶颈,有了数据库连接池,程序只需从连接池中获取数据库链接,使用完毕后,再放入连接池中便可,所有的数据库连接由数据池管理。可以设置连接池的最大连接数量,每个连接的最大空闲时间等。 (3) SSH2框架 SSH2 为 struts2+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH2框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts2作为系统的整体基础架构,负责MVC的分离,在Struts2框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts2和hibernate。其集成原理如图3.1所示。 10 图3.1 SSH2集成原理图 (4) MVC框架Struts 2 struts2是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理,这个Servlet再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的action去处理。 ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数)。 要说明的是, ActionServlet把formbean对象传递给action的execute方法之前,可能会调用formbean的validate方法进行校验,只有校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面由input属性指定。 action执行完后要返回显示的结果视图,这个结果视图是用一个ActionForward对象来表示的,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml配置文件 11 为jsp页面设置的逻辑名,这样可以实现action程序代码与返回的jsp页面名称的解耦。其体系结构如图3.2所示。 图3.2 Struts 2体系结构图 (5) ORM框架Hibernate 通过数据库保存java程序运行时产生的对象和恢复对象,其实就是实现了java对象与关系数据库记录的映射关系,称为ORM(即Object Relation Mapping),人们可以通过封装JDBC代码来实现了这种功能,封装出来的产品称之为ORM框架,Hibernate就是其中的一种流行ORM框架。使用Hibernate框架,不用写JDBC代码,仅仅是调用一个save方法,就可以将对象保存到关系数据库中,仅仅是调用一个get方法,就可以从数据库中加载出一个对象。 使用Hibernate的基本流程是:配置Configuration对象、产生SessionFactory、创建session对象,启动事务,完成CRUD操作,提交事务,关闭session。 使用Hibernate时,先要配置hibernate.cfg.xml文件,其中配置数据库连接信息和方言等,还要为每个实体配置相应的hbm.xml文件,hibernate.cfg.xml文件中需要登记每个hbm.xml文件。 12 在应用Hibernate时,重点要了解Session的缓存原理,级联,延迟加载和hql查询。其体系结构如图3.3所示。 图3.3 Hibernate框架体系结构 (6) 开源框架Spring Spring是一个开源框架,是开发者为了解决企业应用开发的复杂性问题而创建的。使用基本的JavaBean来完成以前只能有EJB完成的工作,并提供了许多企业应用功能。然而Spring用途不仅限于服务器开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 Spring实现了工厂模式的工厂类,这个类名为BeanFactory(实际上是一个接口),在程序中通常BeanFactory的子类ApplicationContext。Spring相当于一个大的工厂类,在其配置文件中通过元素配置用于创建实例对象的类名和实例对象的属性。Spring的核心机制是IoC,Spring也提供了对AOP技术的良好封装。其体系结构如图3.4所示。 13 图3.4 Spring框架体系结构 3.2 三层架构 系统采用Java技术作为主要开发技术,并选用了一些优秀的开源框架来实现系统所定义的功能。三层架构就是将整个业务应用划分为表现层、业务逻辑层、数据访问层,如图3.5所示。 表现层 视图模型 控制器 业务逻辑层 数据访问层 数据库 图3.5 三层架构图 3.2.1 表现层 表现层位于最上层,最接近用户,主要用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。对于表现层,我使用的是Struts2。Struts2并不是一种完全独立的技术,而是建立在其他Web技术上的一个MVC框架。表现层主要作用是将业务逻辑层的数据数据进行组装并发送到客户端,采用MVC架构模式,MVC开始是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而 14 使同一个程序可以使用不同的表现形式。MVC模型图如图3.6所示。 客户端 刷新视图 请求URL 分发器 视图 执行 呈现 控制器 模型 图3.6 MVC模型图 Struts2实现用户请求的处理流程如图3.7所示。 Struts2核心控制器 FilterDispatcher 发送请求 客户端转发请求 视图页面 struts.xml 返回SUCCESSStruts2业务逻辑返回INPUT控制器Action 视图页面 图3.7处理流程图 3.2.2 业务逻辑层 业务逻辑层处于数据访问层与表现层中间,起到了数据交换中承上启下的作用。对于数据访问层而言,业务逻辑层是调用者;对于表示层而言,业务逻辑层是被调用者,依赖与被依赖的关系都纠结在业务逻辑层上。 业务逻辑层主要负责处理应用的业务逻辑和业务校验,事务的管理,允许与其他层进行交互,业务级对象之间的依赖性管理,管理从业务层到表现层的实现等。 15 Spring提供了两种事务管理方式:编程序事务管理和声明式事务管理。在酒店客房网上预订与管理系统中我使用的是声明式事务管理。在Spring的配置文件(applicationContext.xml)中对sessionFactory,transactionManager进行相关配置,还说明了哪些类哪些方法使用事务以及事务的传播性。 HibernateTransactionManager将事务管理的职责委托给org.hibernate.Transaction 对象,而Transaction对象是从Hibernate Session中获取到的。当事务成功完成时,HibernateTransactionManager将会调用Transaction对象的commmit()方法。类似地,如果事务失败,Transaction对象的rollback()方法将被调用。 3.2.3 数据访问层 数据访问层又称持久层,封装了数据访问细节,为业务逻辑层提供了面向对象的API。在酒店客房网上预订与管理系统中我是使用Hibernate来完成数据持久化的。 Hibernate是持久化的基础服务,带有原生的API和它存储在XML文件中的映射元数据。 Hibernate可以单独使用,适用于每一个Java EE/J2EE应用程序服务器、Swing应用程序、简单的Servlet容器等。只要用户能够给Hibernate配置数据源,它就能够实现。它是通过HQL查询语言或使用更有表现能力的规则API,来完成查询关系信息到对象中的这个工作的。其工作流程如图3.8所示。 持久类数据库hotels(如:Hotel类) 映射文件hibernate.cfg.xml(如:Hotel.hbm.xml) Hibernate SessionFactory由Session操作持久化 类对象,进而操作数 据库 Session 图3.8工作流程图 16 4 系统数据库设计和实现 4.1 MySQL简介 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理。 由于MySQL是开放源代码的,因此任何人都可以在General Public License 的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适用性而备受关注。MySQL为多种编程语言提供了API,这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。MySQL支持多种字段类型并且提供了完整的操作符支持查询SELECT和WHERE操作。 图4.1 MySQL架构及应用 4.2 系统E-R图 17 购物车n查看 n1个人订登录11单用户会员 1 预订m n查询n客房 1n 产生 管理m管理员 11 n 交易记订单录 图4.2 系统E-R图 4.3 系统类图 图4.3的系统类图是酒店网上预订与管理系统的设计实体及其之间的关系。 18 usernotice-id : inthotel+noticeId : int-username : char-hotelId : int+noticeDate : Date-password : char-hotelPicture : char+issuer : char-name : char-hotelName : char+content : char-sex : char-businessNo : char+title : char-phone : char-hoteltypeId : int-email : char-city : char-registDate : Date-hotelAddress : charorders-loginNumber : Date-service : char-ordersId : char-latestDate : Date-entertainment : char-ordersNumber : int-content : char-reservePhone : char-userId : int-facilities : char-ordersTime : Date-specialDiet : char-isDeal : char-introduction : char-totalMoney : double-opentime : char-checkinDate : Date-hotelPrice : double-checkoutDate : Date room -roomId : int -roomtypeId : inthoteltype-roomStandard : char+hoteltypeId : intmanager-roomNumber : int+hoteltypeName : char-managerId : int-roomPrice : double-managerName : char-discount : char-managerPassword : char-hotelId : int -roomPicture : char roomtype +roomtypeId : int +roomtypeName : char 图4.3 系统类图 4.4 数据库主要表结构设计 (1) 公告板信息表结构 公告板信息表(notice表)主要存放公告板主要信息表,主要包括公告发布日 期、发布人、公告内容、公告标题等字段信息。 表4-1 公告板信息表结构 序号 列名 类型 长度 小数 可空 说明 1 noticeId int 11 0 否 公告ID 2 noticeDate timestamp 16 0 否 公告发布日期 3 issuer varchar 16 0 否 发布人 4 content varchar 800 3 否 公告内容 5 title varchar 20 0 否 公告标题 19 (2) 酒店信息表结构 酒店信息表(hotel表)主要用来存放酒店介绍基本信息,主要包括酒店图片、酒店名称、工商企业编号、酒店级别、所在城市、具体地址、预订电话等字段信息。 表4-2 酒店信息表结构 序号 列名 类型 长度 小数 可空 说明 1 hotelId int 11 0 否 主键ID 2 hotelPicture varchar 100 0 否 酒店图片 3 hotelName varchar 100 0 否 酒店名称 4 businessNo varchar 15 0 否 工商企业编号 5 hoteltypeId int 11 0 否 酒店级别ID 6 city varchar 10 0 否 酒店所在城市 7 hotelAddress varchar 200 0 否 具体地址 8 service varchar 500 0 是 酒店服务 9 entertainment varchar 500 0 是 娱乐项目 10 reservePhone varchar 12 0 否 预订电话 11 facilities varchar 300 0 是 酒店配置 12 specialDiet varchar 300 0 是 饮食服务 13 introduction varchar 500 0 是 酒店简介 14 opentime varchar 20 0 是 开业时间 15 hotelPrice double 10 2 否 预订价格 20 (3) 客房信息表结构 客房信息表(room表)主要用来存放酒店客房基本信息,主要包括客房类型、客房配置、可预订数量、价格、优惠政策、所属酒店、客房图片等字段信息。 表4-3 客房信息表结构 序号 列名 类型 长度 小数 可空 说明 1 roomId int 11 0 否 主键ID 2 roomtypeId int 11 0 否 客房类型ID 3 roomStandard varchar 100 0 否 客房配置 4 roomNumber int 11 0 否 可预订数量 5 roomPrice double 10 2 否 价格 6 discount varchar 100 0 是 优惠政策 7 hotelId int 11 0 否 所属酒店 8 roomPicture varchar 20 0 是 客房图片 (4) 预订信息表结构 预订信息表(reserve表)主要存放客房预订信息表,主要包括预订日期、预订人姓名、联系电话、预订客房的类型、入住日期、预订房间数、退房日期等字段信息。 表4-4 预订信息表结构 序号 列名 类型 长度 小数 可空 说明 1 reserveId int 11 0 否 预订ID 2 reserveDate timestamp 0 0 否 预定日期 3 residentName varchar 20 0 否 预订人姓名 4 residentPhone varchar 16 3 否 联系电话 5 reserveType varchar 20 0 否 预订客房类型 6 checkinDate timestamp 0 0 否 入住日期 7 ordersNumber int 11 0 否 预订房间数 8 checkoutDate timestamp 0 0 否 退房日期 21 (5) 用户信息表结构 用户信息表(user表)主要用来存放用户基本信息。主要包括用户名、密码、 姓名、性别、注册日期、登录次数、最近登录日期、手机号码和电子邮箱等字段 信息。 表4-5 用户信息表结构 序号 列名 类型 长度 小数 可空 说明 1 id int 11 0 否 主键ID 2 username varchar 16 0 否 用户名 3 password varchar 16 0 否 密码 4 name varchar 32 0 是 姓名 5 sex varchar 2 0 是 性别 6 phone varchar 16 0 是 手机号码 7 email varchar 64 0 是 电子邮箱 8 registDate timestamp 0 0 是 注册日期 9 latestDate timestamp 0 0 是 最近登录日期 10 loginNumber int 11 0 是 登录次数 22 5 界面设计与程序设计 5.1 界面设计 5.1.1 酒店预订模块界面设计 用户在系统首页可以查看本站的公告信息和参加限时抢购活动,也可以选择登录后进行在线预订或注册成为本站的会员。 图5.1 系统首页 用户在预订页面可以浏览最近热卖酒店的相关信息,或输入目的地、入住时间等查询相关酒店的信息。 图5.2 酒店预订界面 23 用户可以选择房价、星级、品牌、设施等条件筛选出符合自己需要的酒店,点击该酒店可以查看酒店介绍及客房的相关信息。 图5.3 酒店搜索界面 可以浏览该酒店的客房信息及其他会员对该酒店的点评。用户登录后可以选择需要的客房进行预订,或对该酒店进行点评。 图5.4 客房预订界面 5.1.2 酒店管理模块界面设计 管理员登录后可以对酒店信息进行修改和删除,根据需要也可以增加一些酒 24 店及其具体信息。 图5.5 酒店管理界面 管理员登录后可以对客房信息进行修改和删除,根据需要也可以增加一些客房及其具体信息。 图5.6 客房管理界面 管理员登录后可以对会员信息进行修改和删除,根据需要也可以查看会员的相关订单的详细信息。 25 图5.6 会员管理界面 5.2 程序设计 5.2.1 酒店搜索功能程序设计 酒店搜索功能是根据用户输入的目的地等信息进行相关酒店的检索,即响应 客户端发出的条件搜索请求。酒店搜索功能的代码实现如下: public String search(){ List searchAll3 = searchService.searchAll(1, 10); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("searchAll3", searchAll3); System.out.println("searchAll3"+searchAll3.get(0).getHotelName()); System.out.println("searchAll3"+searchAll3.get(0).getCity()); return null; } public List searchAll(final String city, final int pageNo,final int pageSize) { List searchAll = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session)throws HibernateException, SQLException { 26 String sql = "from Hotel"; Query query = session.createQuery(sql); query.setFirstResult((pageNo - 1) * pageSize); query.setMaxResults(pageSize); List list = query.list(); return list; } }); return searchAll; } 5.2.2 酒店预订功能程序设计 酒店预订功能是调用了ShoppingCartAction类ordersManage方法响应会员预 订的请求,ordersManage方法在实现时调用了Dao层的ShoppingCartDaoImpl的 addOrders方法。酒店预订功能的代码实现如下: public String ordersManage(){ HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); double totalMoney = (Double)session.getAttribute("totalMoney"); User user = (User)session.getAttribute("loginUser"); Reserve reserve = new Reserve(); reserve.setUser(user); reserve.setReserveDate(new Timestamp(new Date().getTime())); reserve.setIsDeal("0"); reserve.setTotalMoney(totalMoney); reserve.setCheckinDate(checkinDate); reserve.setCheckoutDate(checkoutDate); reserve.setReserveRoomNumber(1); reserve.setResidentName(residentName); reserve.setResidentPhone(residentPhone); 27 reserve.setResidentEmail(residentEmail); reserve.setReserveType("三星级"); String ordersNumber = "CITY"; DateFormat format = new SimpleDateFormat("yyMMddHHmmss"); String formatDate = format.format(new Date()); int random = new Random().nextInt(100000); ordersNumber += formatDate+random; reserve.setOrdersNumber(ordersNumber); shopService.addOrders(reserve); session.removeAttribute("shoppingRoom"); session.removeAttribute("totalMoney"); return "success"; } 5.2.3 公告显示功能程序设计 公告显示功能是在页面上显示最新的公告信息,当用户要浏览更多公告时就 调用了NoticeAction类的noticeType方法显示所有的公告,当点击公告标题时调 用oneNotice方法显示该公告的具体内容。公告显示功能的代码实现如下: public String noticeType() { List noticeList = new ArrayList(); HttpServletRequest request = ServletActionContext.getRequest(); noticeList = noticeService.noticeType(1, 10); request.setAttribute("noticeList", noticeList); return null; } public String oneNotice() { HttpServletRequest request = ServletActionContext.getRequest(); String noticeId = request.getParameter("noticeId"); int noticeIdInt = Integer.parseInt(noticeId); Notice notice = new Notice(); 28 notice = noticeService.findNotice(noticeIdInt); request.setAttribute("oneNotice", notice); return null; } 5.2.4 会员管理功能程序设计 会员管理功能包括对会员信息的增加、修改、删除。当管理员要增加会员时 就调用ManageUser类的addUser方法,当要修改会员信息时调用 UpdateUserAction类的updateUserInfor方法,删除会员时调用UpdateUserAction 类的deleteUser方法。会员管理功能的代码实现如下: public String noticeType() { List noticeList = new ArrayList(); HttpServletRequest request = ServletActionContext.getRequest(); noticeList = noticeService.noticeType(1, 10); request.setAttribute("noticeList", noticeList); return null; } public String updateUserInfor() { System.out.println(id); User user = updateUserSev.findUser(id); System.out.println(user); user.setUsername(username); user.setPassword(password); user.setName(name); user.setSex(sex); user.setPhone(phone); user.setEmail(email); updateUserSev.updateUserInfor(user); return SUCCESS; } 29 public String deleteUser() { // TODO Auto-generated method stub HttpServletRequest request = ServletActionContext.getRequest(); String id = request.getParameter("id"); int i = 0; i = updateUserSev.deleteUsers(Integer.parseInt(id)); System.out.println("sshsdhgfnthfissjs"+id); if(i == 0){ return "error"; }else{ return "success"; } } 5.2.5 酒店管理功能程序设计 酒店管理功能包括对酒店信息的增加、修改和删除。当管理员要增加酒店时 就调用AllHotelAction类的addHotel方法,当要修改酒店信息时调用 UpdateHotelAction类的execute方法,删除酒店信息时调用AllHotelAction类的 deleteHotel方法。酒店管理功能的代码实现如下: public String deleteHotel(){ HttpServletRequest request = ServletActionContext.getRequest(); String hotelId = request.getParameter("hotelId"); System.out.println("要删除的酒店的ID是:"+hotelId); int i = 0; i = allhotelService.deleteHotel(Integer.parseInt(hotelId)); if(i == 0){ return "error"; }else{ return "success"; } 30 } public String execute(){ Hotel hotel = updateHtlSev.findHotel(hotelId); System.out.println(hotel); if(doc != null){ System.out.println("asd"); String realPath = ServletActionContext.getRequest().getRealPath("/images/hotelimgs"); String targetDirectory = realPath; targetFileName =generateFileName(fileName); setDir(targetDirectory+"\\"+targetFileName); File target = new File(targetDirectory,targetFileName); try { FileUtils.copyFile(doc, target); hotel.setHotelPicture(targetFileName); } catch (Exception e) { e.printStackTrace(); } }else{ this.addFieldError("doc", "请选择要修改的图片"); } System.out.println("ssss"); hotel.setHotelName(hotelName); hotel.setBusinessNo(businessNo); hotel.setHotelAddress(hotelAddress); hotel.setCity(city); hotel.setHotelPrice(hotelPrice); hotel.setFacilities(facilities); hotel.setEntertainment(entertainment); hotel.setOpentime(opentime); 31 hotel.setReservePhone(reservePhone); hotel.setService(service); hotel.setSpecialDiet(specialDiet); hotel.setIntroduction(introduction); HotelType hoteltype = updateHtlSev.findType(hoteltypeId); hotel.setHotelType(hoteltype); updateHtlSev.updateHotel(hotel); return SUCCESS; } 5.2.6 客房管理功能程序设计 客房管理功能包括对客房信息的增加、修改和删除。当管理员要修改客房信 息时调用RoomManageAction类的updateRoom方法,增加客房时就调用 RoomManageAction类的addRoom方法,当要删除客房信息时调用 RoomManageAction类的deleteRoom方法。酒店管理功能的代码实现如下: public String updateRoom(){ System.out.println(roomId); Room room = roomMagSev.findRoom(roomId); System.out.println(room); if(doc != null){ System.out.println("abcd"); String realPath = ServletActionContext.getRequest().getRealPath("/images/roomimgs"); String targetDirectory = realPath; targetFileName =generateFileName(fileName); setDir(targetDirectory+"\\"+targetFileName); File target = new File(targetDirectory,targetFileName); try { FileUtils.copyFile(doc, target); room.setRoomPicture(targetFileName); 32 } catch (Exception e) { e.printStackTrace(); } }else{ this.addFieldError("doc", "请选择要修改的图片"); } System.out.println("ssssaaaaa"); room.setRoomNumber(roomNumber); room.setDiscount(discount); room.setRoomPrice(roomPrice); room.setRoomStandard(roomStandard); RoomType roomtype=roomMagSev.findType(roomtypeId); Hotel hotel=roomMagSev.findHotel(hotelId); room.setRoomType(roomtype); room.setHotel(hotel); roomMagSev.updateRoom(room); return SUCCESS; } public String deleteRoom(){ HttpServletRequest request = ServletActionContext.getRequest(); String roomId = request.getParameter("roomId"); System.out.println("要删除的客房的ID是:"+roomId); int i = 0; i = roomMagSev.deleteRoom(Integer.parseInt(roomId)); if(i == 0){ return "error"; }else{ return "success"; } } 33 6 系统测试 6.1 测试的基本概念 6.1.1 测试的目的 测试的目的就是在软件投入生产运行之前,尽可能多地发现软件中的错误。 6.1.2 测试方案 测试的目的测试方案是测试阶段的关键技术问题。为了提高测试效率降低测试成本,本测试方案采用黑盒测试和白盒测试。 黑盒测试:也称为功能测试,指将软件看成黑盒子,在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。根据系统分析说明书设计测试用例,通过输入和输出的特性检测是否满足指定的功能。 白盒测试:也称为结构测试。指将软件看成透明的白盒,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否绵竹设计的需要。 6.2 测试的步骤 软件测试实际上分成四步:单元测试、组装测试、确认测试和系统测试,它们按顺序进行。 (1) 单元测试 单元测试对源程序中的每一个程序单元进行测试,验证每个模块是否满足系统设计说明书的要求。 本系统单元测试:删除客房信息是出现错误。错误原因是酒店信息表中的hotelId字段是客房信息表的外键,在删除客房信息时涉及到级联删除所有关联对象。解决的方法是将Room类的映射文件中的元素中的cascade属性修改为all或者delect。 (2) 组装测试 组装测试是用于装配软件的一种系统化的技术,要在软件装配的同时进行测试。用以发现与接口相联系的问题。目的是将经过单元测试的模块构成一个符合设计要求的软件结构。组装测试技术有自顶向下结合和自底向上结合两种测试方 34 法。本系统工程采用自顶向下结合的测试方法对子系统进行组装测试,在测试过程中没有发现问题。 (3) 确认测试 确认测试是对整个软件进行验收,根据系统分析说明书来考察软件是否满足要求。 对本系统用户登录模块进行测试情况如表6-1所示。 表6-1 用户登录模块测试用例表 用户名 用户密码 权限 测试结果 a11111 a11111 用户 显示主界面 空 空 用户 提示输入信息 a11111 空 用户 提示输入密码 a11111 111111 用户 密码错误 a11112 a11111 用户 用户名错误 admin admin 管理员 显示主界面 admin 11111 管理员 密码错误 admin1 admin 管理员 用户名错误 经过测试,用户登录模块测试成功。 (4) 系统测试 系统测试是将软件、硬件、网络等系统的各个部分连接起来,对整个系统进行总的功能、性能等方面的测试。 软件测试是软件开发过程中不可缺少的一个步骤,也是一个非常重要的步骤,不能有一点粗心大意。在过程中,强调的是每个过程的每一个环节都要进行测试,保证系统在每个阶段都可以控制。因为软件测试中考虑的问题基本上是项目管理中需要考虑的问题。具体的说,软件测试是事务性的,而项目管理是策略性的,一些策略性的东西必须在也许事务性的事务上来实现。 35 结 论 本系统结合了Struts2,Spring,Hibernate这三个当前比较流行的框架,对酒店客房网上预订系统的预订模式和管理模式进行分析,实现了酒店客房网上预订与管理系统。本系统使用MySQL数据库。经过了系统架构的设计,数据库的设计,internet的服务器配置,代码的编写与测试,一直到最后整个系统的顺利运行,使我了解了这三者的结合,可以使系统的稳定性和效率得到很好地保证,并且可维护性很强。 虽然在编程的过程中遇到不少的问题,有时卡在那里不知如何处理,但在请教老师和其他同学后问题都得到了很好的解决。在程序设计的过程中将以前学的三个框架的理论知识得到了实践,更加体会到这三个框架的整合重要性。通过本次的毕业设计,我有以下几点体会: (1) 基础要打牢 在毕业设计中,我有过徘徊不前,有些看似很简单的问题却用了很长时间去解决。那时我深深体会到了扎实基本功的重要性,意识到在以后的学习中要把基础打牢,掌握当前主流应用软件开发平台和工具是十分重要的技术技能。信心源自实力,没有实力,心里会有些发虚。 (2) 前期工作要做好 拿到毕业设计任务书后不要立即投入到代码的编写中,先要有系统规划,规划好酒店预订的功能需求。再对数据库中的表单进行结构设计,然后划分系统中的模块以及每个模块中要实现的功能,最后才开始进行各模块的界面设计和编写程序。 (3) 理论与实践相结合 都说不能纸上谈兵,确实如此。理论知识学得很好,但是一到编写代码的时候却不知如何去实现,这样是不行的。通过毕业设计,在完成一个实际项目的过程中,不仅可以巩固自己的理论知识,而且能够帮助自己很好的掌握以前不是很明白的知识和技术。 通过一个实际项目的开发,我也集累了一些项目开发经验。软件系统分析的 36 好坏将决定着的软件系统开发成功与否,分析设计的质量是成功开发的先导。我们在着手开发之前不要急于编程,应先花一定的时间把分析做好,做好数据库设计工作,写出相关的文档等。然后再开始编写程序代码,这样,每写一段代码都心底有数,不会有大的返工。 该系统主要实现了用户注册,登录,修改个人信息及密码,酒店搜索,公告浏览,在线留言,购物车,个人订单,用户信息管理,酒店信息管理,客房信息管理,公告发布与管理以及用户订单信息管理等功能,完成了酒店预订的功能需求。但由于时间和技术上的原因,仍然存在很多需要改进之处。比如:界面不够精美、功能不够完善、设计不够全面等,都可以改进得更好。 37 参考文献 [1] 李刚.轻量级J2EE企业应用实践.北京:电子工业出版社,2007 [2] 孙卫琴.Hibernate-Java对象持久化技术详解.北京:电子工业出版社,2006 [3] 孙卫琴.精通Struts基于MVC的Java Web设计与开发.北京:电子工业出版社,2004 [4] [美]Nicholas C.Zakas著,李松峰,曹力译.JavaScript高级程序设计.北京:人民邮电出版社,2012 [5] Marty Hall.Core Servlets and JavaServer Pages. Prentice Hall PTR.2001 [6] Rod Johnson,Juergen Hoeller.J2EE Development without EJB.wrox.2004 [7] 陆舟.Struts2技术内幕:深入解析Struts2架构设计与实现原理[M].北京:机械工业出版社,2012 [8] 孙卫琴.精通Struts:基于MVC的JavaWeb设计与开发[M].北京:电子工业出版社,2004 [9] 周恒民.Java TCP/IP Socket编程[M].北京:机械工业出版社,2009 [10] 孙卫琴.精通Hibemate:Java对象持久化技术详解[M].北京:电子工业出版社,2005 [11] 沃尔斯等著,毕庆红等译. Spring in Action(第二版)中文版[M]. 北京:人民邮电出版社,2008 2] 王斌.大数据:互联网大规模数据挖掘与分布式处理[M].北京:人民邮电出版[1 社,2012,9 [13] 张欣.可扩展的艺术:现代企业的Web架构、流程及组织[M].北京:人民邮电出版社,2013.1 [14] 张海潘.软件工程导论(第5版).北京:清华大学出版社,2008 [15] 汪孝宣.JSP数据库开发实例精粹.北京:电子工业出版社,2005 [16] 赵斌.软件测试技术经典教程[M].北京:科学出版社,2011,2 [17] 余杰.JSP动态网站建设[M].北京:国防工业出版社,2002 [18] Grady Booch,James Rumbaugh,Ivar Jacobson.UML用户指南[M].北京:机械工业出版社,2001,3 [19] 萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2002,5 [20] 蒲子明,Struts2+Hibernate+Sping整合开发技术详解,北京:清华大学出版社,2012 38
/
本文档为【基于J2EE的酒店客房网上预订与管理系统的设计与实现 毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索