一种基于J2EE的火车订票系统的设计

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:zj1280
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:火车网上订票系统是通过网络查询信息,进行火车票的预订、购买、支付的电子商务系统。订票在购票交易过程中扮演着十分重要的角色。系统深入探讨了J2EE应用系统开发过程及其相关技术,提出了订票系统解决方案,在此基础上重点解决了系统体系结构、订票篮设计及系统安全三个关键问题。
  关键词:电子商务;J2EE;B/S模式;订票篮
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)05-10ppp-0c
  
  1 引言
  
  近年来,随着Internet技术的快速发展,电子商务的应用越来越广泛,它运用电子通信作为手段进行经济活动,人们可以对带有经济价值的产品和服务进行宣传、购买和结算。电子商务是一种新兴的商务方式,它能提供准确、快速、高效的商务运作,是当今商务运作发展的主流方向。
  随着国民经济快速发展,人们出行、交通越来越频繁,对服务的快捷、便利性要求也越来越高。从而对客运行业的建设与管理提出了更高的要求。为适应和推动客运行业的发展,各种交通公司和部门开始广泛采用计算机管理系统,促进了票务事业的发展。经过几年的建设和完善,取得了许多宝贵的成功经验。采用计算机售票一方面大大减轻了订票、售票、检票、调度、票款管理等部门工作人员的劳动强度,提高了各部门的工作效率。
  
  2 J2EE相关技术
  
  J2EE是Sun公司推出的一个基于Java组件技术的企业应用系统开发规范,它为不同厂商创建平台产品提供了标准,使不同J2EE平台产品之间的交互成为可能。J2EE规范[1]定义了一个基于组件技术的多层企业信息系统的标准平台,旨在简化和规范企业应用系统的开发和部署。J2EE不仅能够方便存取数据库的JDBC API, CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还能提供了对EJB(Enterprise JavaBean)、Java Servlets API, JSP(Java Server Page) [2,3]以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
  由J2EE技术组成的三层或多层的架构体系[4],已经成为开发信息系统首选。
  典型的J2EE系统至少划分三个层次[5]:表现层,业务逻辑组件层,持久层。
  表现层(Presentation Layer)是实现显示功能的。它是用户界面或者远程调用门面。主要由页面技术JSP, SERVLET和MVC框架技术来完成。
  业务逻辑层是成功架构的关键[6],这一层的主要功能是提供业务逻辑给表现层使用,它包括许多接口。一个好的业务层具备一下特点:功能完备,使用简单,有很好的OO的实施,面向对象,独立于表现层,易测试,易管理,对事务管理进行处理等。业务层主要是EJB, POJO等技术来实现的[7]。
  持久层(Persistence Layer)是负责对象持久化也就是数据库操作的层次。其三层结构和各层之间的关系,如图1。
  
  图2 系统总体架构
  
  4 系统设计
  
  4.1 订票系统设计
  订票模块是订票系统的主要模块之一,包含票券订购、查询、票券信息展示、订票篮等四个子模块,票券订购模块设计了一套完善的订票流程,票券信息的展示方便了用户查询自己的定单。该系统中,首先必须通过会员注册成为会员或是会员登陆才可以完成订票。订票资料提交后,系统会生成一个唯一的取票号,则客户订票成功。客户只要凭身份证或其他有效证件到自己选择的的取票点在有效时间内取票即可。
  系统应该要求其概念模式、显示方式等的一致性,在类似的情况下具有一致的操作序列,如在提示和帮助中产生相同的术语等。人机界面设计的一致性要求对构成易学易用是极为重要的;交互系统的反馈是指用户从计算机一方得到信息,表示计算机对用户的动作所做的反应。如果系统没有反馈,用户就无法判断他的操作是否为计算机所接受,是否正确,以及操作的效果是什么.反馈信息的呈现方式可以是多种多样的,如文本、图形和声音等;在界面的空间使用上,应当形成一种简洁明了的布局。界面设计最重要的就是遵循美学上的原则—简洁与明了;综合测试与评估,这个阶段的关键任务是通过各类型的测试与评估,使系统达到预定的要求。它可以采取多种方法,如试验法、用户反馈、专家分析、软件测试等,对软件界面的诸多因素如功能性、可靠性、效率、美观性等进行评估,以获取用户对界面的满意度,便于尽早发现错误或者不满意的地方,以改进和完善系统设计;
  基于J2EE技术的火车订票系统具有结构复杂、各订票流程界面存在着很大的相似性、界面之间需要传递的信息量大等特点。在系统界面设计时,作者利用上述设计原则和步骤,并结合本系统的具体特点进行设计。
  4.2 数据库的设计
  票券信息数据结构复杂,涉及班次的日期/时间、出发地/目的地、票券种类等信息,本系统根据关系型数据库的设计思想,对票券信息资料进行规划设计。票券信息数据库中表的设计。
  user信息表描述的是系统最高权限管理员的信息,它存放的是系统管理员的用户名(username)、密码(password)、姓名(name)、性别(sex)、生日(birthday)、电话(phone)、地址(address)、电子邮箱(email)、用户类型(userType)备注(memo)和流水号(flowID)等。其中前四个字段是必要字段,后面的字段可以为空。系统的三种用户(普通用户、票点管理员、系统管理员)都存放在这一表中。其中的userType用以区分这三种用户,"0"为系统管理员,"1"为票点管理员,"2"为普通用户。系统管理员只有一个,由建表时建立,票点管理员由系统管理员添加,而普通用户则通过注册获得合法权限, Range信息表描述的是火车的区间,即火车的基本信息。它包括火车的车次(traimID)、出发站(startStation)、到达站(desStation)、出发时间(StartTime)、到达时间(arriveTime)、备注(memo)和流水号(flowID)。这个信息表可以供一般用户查询,而系统管理员则可以添加、修改和删除任意的火车区间。ticketType信息表描述的是火车票的种类。它包括火车的车次(range)、车票种类名称ticketTypeName)、该类车票的张数(ticketNumber)、该类车票的价格(ticketPrice)、备注(memo)和流水号(flowID)。这个信息表也可以供一般用户查询,而系统管理员则可以添加、修改和删除任意的票种区间。Diction信息表描述的是数据库表中所替代字段的名称。它包括要替换的字段名称(dictType)、替换后的名称(dictKey)、要替换的名称(dicValue)、备注(memo)和流水号(flowID)。比如在_user信息表中的sex字段,男用字母m替换,女用字母f替换。该表是为了存储的方便和空间的节约。Office信息表描述的是票点的基本信息。它包括票点的名称(officeName)、票点的地址(officeAddress)、票点的电话(officePhone)、票点的传真(officeFax)、票点管理员的ID号(officeManagerID)、备注(memo)和流水号(flowID)。票点是一般用户订票后取票的地方,所以以上的前五个字段是必须的。票点可以由系统管理员添加。Ticket信息表描述的是火车票的信息。它包括用户订票时生成的取票号(ticketUniformID)、票点ID(officeID)、票种类ID(ticketTypeID)、出发时间(startTime)、预定时间(bookTime)、一般用户名称(userName)、备注(memo)和流水号(flowID)。这里的userName是一般用户的名称,是通过注册的合法本系统会员,本系统规定只有会员才拥有订票功能。
  本系统的表,都是通过流水号(flowID)联系起来的,比如火车票信息中的票点ID(officeID)、票种类ID(ticketTypeID)都是Office和ticketType中的流水号(flowID)。从而建立了统一的联系,从而形成了既快捷又简单的联系方式。
  4.3 订票篮的设计
  订票系统最终实现的是购买一张适合旅客的票据,因此订票篮的设计能够反映出整个购票流程。本系统设计的订票篮采用了Session技术,系统把一个订单中的每一张票作为一条纪录插入数据集,订票篮中实际存放的是一个总的定单数据,最后插入数据库时系统先从Session中提取纪录,然后再逐条放入数据库。票券信息的结构复杂性使得系统在构建构票流程是采取的是逐步选择的方式。这种购票方式致使旅客每进行一步购票操作就要保存一次数据,这就需要设计一个数据集,将票券信息同一存放在一个数据集中的临时关系表中,然后一层层包含的方式实现旅客每进行一步操作都存入数据集中的临时表中,并作为Session的存储对象。
  票券是存放于订票篮的基本信息,设计订票篮首先要设计票券的内容,火车票票券应包含的信息主要有:旅客的姓名;服务项目;取票点;班次;日期/时间;票种。
  订票篮是网上订票系统的关键部分,系统最终实现的是购买到一张或几张符合旅客需求的票券,由于票券的信息结构复杂,将涉及到数据库中许多相关联的关系表,如果订票篮采用一般的数组结构,显然无法满足要求:票券信息的结构复杂性使得系统在构建构票流程是采取的是逐步选择的方式。这种购票方式致使旅客每进行一步购票操作就要保存一次数据,这就需要设计一个数据集,将票券信息同一存放在一个数据集中的临时关系表中,然后一层层包含的方式实现旅客每进行一步操作都存入数据集中的临时表中,并作为Session的存储对象。
  用户登陆系统页面订票,首先将请求一个资源,这个资源被映射到struts.guest.TicketAction中,而这中映射的实现是在struts-config.xml里面配置的。在TicketAction里面首先进行的是用户输入的合法性验证,比如输入的订票张数是否合法。验证通过以后,将调用TicketService类里面的方法insert(),执行具体的插入动作。而这个insert()方法首先调用DaoConfig文件,通过DaoConfig文件获得获得DaoManager实例。而DaoManager实例负责处理Dao接口和SqlMaps的实现关系,这个实现关系在cn.edu.him.persistence下面的dao.xml文件中定义。TicketService又利用这个实例化的DaoManager实例获得一个由TicketSqlMapDao实例化的TicketDao接口。这个TicketDao接口中就包含有插入这个方法,但实现又是在TicketSqlMapDao中,在TicketSqlMapDao中实现时,调用那些Mapped Statement。 Statement在cn.ede.him.persistence.sqlmapdao.sql包中的xml文件中定义,每一个Statement都有一个id,而每一个id又对应一条SQL语句,执行这条SQL语句就执行了插入操作。从而实现了用户的订票。
  用户订购票券时,逐层加入数据集,最终在订票篮中形成一个完整的票券信息数据结构表,确定购买票券之后查询订票篮中的票券信息以插入数据库,最后执行删除订票篮在Session的记录,释放资源。
  用户通过注册或者会员登陆后,才可以实现订票。会员注册信息填写。会员登陆后,就可以根据自己需要的车次或者出发地/目的地查询具体信息。然后查看车票类型,找到自己所需要的车票类型后选择订票,选择订票后,就可以选择车票的详细信息,比如取票的地点、订票的张数、车次发车的日期。然后确定后就生成取票号及定单详细资料。
  
  5 结束语
  
  基于J2EE技术的火车票订票系统结构复杂,网上订票系统是整个售票系统的一个子系统,是票务系统的一个销售渠道。网上订票系统涉及技术面较广、用户量大,对系统的响应速度、稳定性、安全性、实时性等方面要求很高。系统系统实现了对火车网上售票系统的设计与开发,能够在诸多复杂因素的影响下,保证售票的正常运行。
  
  参考文献:
  [1]Subrahman yam.J2EE编程指南[M].北京:电子工业出版社,2004.
  [2]杨学瑜,王志军,刘同利.JSP入门与提高[M].北京:清华大学出版社,2001.
  [3]孙卫琴,李洪成.TOMCAT与Java Web开发技术详解[M].北京:电子工业出版社,2004.
  [4](美)谢小乐((Henry Xie),著,朱福喜,余振坤,译.J2EE经典实例详解[M].北京:北京人民邮电出版社,2003.9.
  [5](美)Palavi JainShadab Siddiqui著,王雷潘英译,J2EE专业项目实例开发[M].中国水利水电工业出版社,2003.2.
  [6]Rod Johnson.Introduction to open-source Spring framework for J2EE.ppt,2005.
  
  收稿日期:2008-01-20
  作者简介:段昌敏,硕士,讲师,研究方向:系统设计、现代密码学、网络安全等。
其他文献
摘要:在高职院校教学过程中,计算机网络专业有一定的特殊性。在无法将多数网络设备搬到课堂的前提下,如何让学生能够直观地理解网络架构及网络原理呢?该文作者结合自己的日常教学工作,研究出了一套行之有效的教学方法即虚实结合。通过此教学方法,教师可以在教室为学生展现完整的网络拓扑及服务器部署与配置,使学生简单清楚地学习计算机网络相关知识。该方法在实际教学中已取得了显著成效,并在相关专业得到了推广。  关键词
一些事情,只有走近了,才会知道。就像走近了,才会聞到花香;走近了,才会听到鸟鸣。我们班有两位同学,我对他们的了解,也是走近了,才知道。  他叫潘庆,他的学习成绩在全年级数一数二。看着他的成绩,我心想:为什么他总是如此优秀?为什么我那么努力,也超不过他?难道他真的就是传说中的天才吗?  直到六年级,老师让我与他同桌。通过交流,我才知道,他家里有十几本课外复习资料,每天晚上,他总要学习到十一点才休息。
摘要:数据采集是科学实验的一个重要环节,数据采集卡是数据采集系统的一个关键硬件。利用DataSocket技术能较好实现数据采集卡的共享,提高了设备的利用率和降低实验成本。  关键词:数据采集;DataSocket;Labview;RDA  中图分类号:TP274 文献标识码:A 文章编号:1009-3044(2009)15-4045-02    The Example of Share Data
摘要:Blog作为网络时代信息化下的产物,以其自身的一些显著特点使得它在高等教育中大放光彩,它已成为继课件、积件、资源库、教育主题网站等信息化教学模式之后的一种新的网络教学模式。本文站在先进的教育理念的高度,分别从Blog可以作为学生进行自主学习、建构知识的工具、教师进行叙事研究、反思的工具、作为师师、师生、生生交流的工具以及作为教学评价的工具四个方面阐述了Blog在教育中的应用,并探讨了在教学中
美国各州在教育规划上向来有独立的传统,这在保持区域教育特色的同时也造成教育质量参差不齐的状况。20世纪90年代和21世纪初,美国政府制定和颁布了相关法案,旨在加强教育监管,提升教育质量。在这样的背景下,倡导制定一部全国性质的通用课程标准提上了日程。美国各州教育长官委员会(the Coun-cil of Chief State School Officers,CCSSO)和全国州长协会(the Na
摘 要:信息技术与教育教学的深度融合促成了教育教学方式的变革与创新。评价作为课堂教学中重要一环,在互联网、大数据分析环境中正在逐步实现转型。该研究运用“多元交互式”课堂观察数字平台,从课堂提问行为、媒体应用行为、师生交往行为和学生学习行为四个维度对教师的教与学生的学进行客观公正评价,并结合评价结果提出矫正课堂教与学行为的建议,最后反思开展数字化观察课堂教学行为的策略。  关键词:课堂评价;多元交互
摘要:本文的研究目标是时开发企业信息系统的技术平台-j2EE的实现技术进行改进。文章首先分析了Struts、Spring和Hibernate开源框架的技术内涵。然后,做了整合框架的可行性分析。接着,提供了将这三种框架进行整合的设计和方法,以及在项目中的业务逻辑。同时分析了整合后的框架优势所在以及应该考虑的主要问题。最后,将整合框架应用于一个企业信息系统的后台管理系统中,并给出了关键代码。  关键词
摘 要:实践教学是培养学生实践能力和综合素质的有效途径,在巩固理论知识、培养学生动手能力和创新意识上发挥了非常重要的作用。文章基于石河子大学《信息检索与利用》课程混合式教学中实践教学的现状,以实践教学环节为主线,结合实践教学的特点,阐述了实践教学改革的缘由、做法、成功经验、存在的问题及建议,为今后进一步提升教学效果及同行更好地开展实践教学提供了参考。  关键词:信息检索与利用;混合式教学;实践教学
摘要:分析于java多线程环境下算法设计的特点,介绍了绘制Mandelbrot集的计算机算法,定义了Mandelbrot集的几个主要变量,并在此基础上给出了计算机算法的实现过程。应用java的多线程机制,良好的实现了对Mandelbrot集的图形绘制。  关键词:Mandelbrot,多线程,java  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2008)01-1006
摘要:将格言警句进行合理安排、精心设计后引入课堂是引领高职院校的语文课程走出困境和进行课程改革的可行性方法之一。然而并非所有的格言警句都可以进入课堂。笔者在大量调查研究的基础上,发现教育价值较高、适合作为教学内容的格言警句一般都具有对读者产生积极的心理暗示、有语言魅力、能切实引发读者的认同感和行为改变等的特点。  关键词:格言警句 课程改革 科学解读  丘吉尔曾经说过,对于没读过书的人来说,读读格