来学伟
(三门峡职业技术学院信息传媒学院,河南三门峡472000)
现在国内外信息化建设已经进入基于Web应用为核心的阶段,而JavaEE是一套面向企业应用的体系结构,不同于传统应用开发的技术框架,它包括许多组件,可简化且规范应用系统的开发与部署,进而提高可移植性、安全性与再用价值。航空公司开发航空订票信息系统不仅给乘客旅行提供了方便,还提高了工作效率和服务质量,增加了经济效益,加快了公司的发展步伐。
航空订票系统通过Internet向用户提供服务,该系统主要有以下功能:1)搜索功能:根据输入的搜索条件能够查找符合条件的航班,并能够在搜索之后进行数据更新。2)订票功能:用户可在线订票,并能够在订票之后修改预订以及取消预订;若用户订票后未支付票款,订票服务会暂时关闭。3)支付功能:用户可在线电子支付票款。
出于管理的需要,航空订票系统需要完成与用户订票相关的管理功能,这些功能提供给航空公司的员工来操作,包括诸如设置、修改和删除航线及航班的详细信息等。这是一个非开放性的网站,用户必须在注册取得用户名和密码登录后才能进入系统。用户如果退出登录,则退出系统。用户分为:系统管理员、经理、营业员、个人客户和企业客户,每种用户的权限必须严格划分和控制。用户不能直接进行注册,必须由系统管理员分配账户和相关权限。系统管理员可以跟踪管理用户账号。用户登录后可以修改自己的相关信息,但不能修改权限。系统管理员建立一个新账号后,系统应发出一封确认信到用户邮箱,告知用户账户已经建立。所有用户都可以使用搜索来检索票务信息。客户能够预定机票,个人客户最多可预定6张机票,企业用户最多可预定300张机票;预定一次机票后,客户必须支付相应票款才能进行下一次预定操作。客户可以退票,也可以选择支付票款的方式,运营经理可以查询和统计当前的票务情况,也可以设置、修改和删除航线航班详细的信息。客户进行订票、退票和修改密码等操作都通过邮件进行确认。定期发送邮件给客户,邮件中包含最近机票的打折等优惠信息。
本系统选取B/S(浏览器/服务器)模式的体系结构,使用Struts2+Spring+Hibernate+Ajax整合开发,Struts2为控制层,Spring为业务层,Hibernate为持久层。以SQL Server 2008为数据库管理系统的开发方案,用户使用浏览器完成人机交互,JSP页面和支持JSP处理的Web服务器共同完成该系统的功能。
Struts 2是在Struts 1和WebWork的基础上发展而来的,其结合了Struts 1和WebWork的优点。尽管Struts 2取名自Struts 1,但其核心思想却来源于WebWork。Struts 2还对其他框架下开发的程序提供了很好的兼容性[1]。目前,Struts 2框架已逐渐成为动态网站技术的主流,本系统正是用这种技术来实现B/S体系结构的。
Struts2框架按照模块来划分,可以分为Servlet Filters、Struts核心模块、拦截器和用户实现部分。用户请求在Struts 2框架中的处理过程大致如下。
(1)由框架产生一个请求并进行处理。框架根据请求匹配相应的配置,得到使用哪些拦截器、Action类和返回结果的信息;
(2)请求通过一系列的拦截器。拦截器和拦截器组可以按照不同级别进行组合配置来处理请求,它们为请求提供各种预处理和切面处理的应用功能;
(3)ActionInvocation实例调用 Action;
(4)ActionInvocation实例根据配置文件查找与Action的返回值匹配的结果[2];
(5)返回HttpServletResponse给客户端。
Hibernate的中文翻译为冬眠,Hibernate是一个开源的持久层框架,其目标是成为一个持久管理的完整解决方案。通过映射关系来协调持久对象与关系数据库的交互,使开发者不必关心持久方面的问题,而专注于业务的开发。Hibernate作为一个对象关系映射框架,本身对JDBC进行简单的对象封装,开发人员运用面向对象的观念来实现对数据库的操作。Hibernate就是一种ORM中间件,位于数据库和应用程序之间[3]。
Hibernate是一种Java语言下的对象关系映射解决方案,它是一种自由、开源的软件,用来把对象模型表示的对象映射到基于SQL的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射提供了一个使用方便的框架。
数据库设计是整个系统的重要组成部分,结构设计直接关系到整个系统的性能优劣。在数据库设计中,其基本思想是基于系统为主线,首先需要的数据表分别设计每个模块,然后再考虑扩展设计相应的扩展表,最后才考虑表之间可能存在联系的几个功能模块,设置相应的主键和索引,数据库表之间的关系如图1所示。
本系统包括搜索、订票、支付等功能,例如,在搜索数据的过程中,程序会发送一个名为/exam/searchExamModule.do的请求,程序会找到ExamModuleAction类的search()方法,此方法的作用是搜索出需要票务的数据,在Hibernate中一次性查出的是整个对象(即整行记录)。
本文设计并开发了一个JavaEE系统,采用了Struts2+Spring+Hibernate实现此系统,相比其他技术,JavaEE在开发业务逻辑复杂、数据交互频繁、高并发量、兼容遗留系统等方面具有很大的优势[4]。
图1 数据库关系图
[1]李纲.Struts2权威指南[M].北京:电子工业出版社,2008.
[2]符钰.基于Struts2+Hibernate3+Spring3框架的Web应用研究[J].金华职业技术学院学报,2013(3):61-64.
[3]范新灿.基于 Struts、Hibernate、Spring架构的 Web应用开发[M].北京:电子工业出版社,2013.
[4]罗玉玲.J2EE应用开发详解[M].北京:电子工业出版社,2009.