要资料 文章 文库 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
 
     
   
分享到
基于Struts框架的网上订票系统的设计与实现
 

发布于2012-2-22

 

编者语:

Struts为JavaWeb应用程序提供了模型-视图-控制器(MVC)框架结构。采用Struts框架开发网上订票系统,充分体现了MVC的思想以及Struts结构在开发Web应用程序中的优势,将显示层、业务层和数据层分离,以实现代码重用和易于修改,提高系统的灵活性、复用性和可维护性,达到提高软件质量的目的

摘要:Struts为JavaWeb应用程序提供了模型-视图-控制器(MVC)框架结构。采用Struts框架开发网上订票系统,充分体现了MVC的思想以及Struts结构在开发Web应用程序中的优势,将显示层、业务层和数据层分离,以实现代码重用和易于修改,提高系统的灵活性、复用性和可维护性,达到提高软件质量的目的。

关键词:Struts框架;Java Web应用程序;MVC模式;网上订票系统;模块设计

Abstract:Struts provides the pattern of model-view-controller(MVC)for Java web applications.Developing web ticket-order systembased on struts framework sufficiently displays the idea of MVC and the preponderance of struts framework in developing web applica-tions,which departs the displaying layer,business layer and data layer to realize the reuse and modification of code and improves theflexibility,reuseability and maintainability to achieve the aim of the improvement of software quality.

Key words:struts framework;Java web application;MVC model;web ticket-order system;module design

引言

随着互联网技术和应用的快速发展,铁路客票网上预订业务需求日益迫切。作为现有“客票发售和预定系统”的扩展和延伸,网上订票为客户提供了方便、快捷的购票手段。同时,作为一种新的客票电子商务应用,网上订票能够显著改善服务品质、降低运营成本,因此,系统开发得到了各铁路客运部门的普遍关注。综合分析北京铁路局、上海铁路分局、西安车站等铁路客运部门网上订票系统,提出基于Struts框架的网上订票系统,充分利用面向对象设计、代码重用以及Java语言“编写一次、到处运行”的优点,并采用模块化处理思想,提高开发效率。

一、系统分析与设计

1.1 系统描述

网上订票系统包括两个部分:一个是前台用户程序,用户在前端浏览公告,可以按车次、站点查询车票,将所需车票填入订单后等待车站的答复。如果答复有票,旅客须在规定时间内将订、购票所需的费用通过网上银行转账,凭订票密码取票。如果在指定时间内转账没有成功,所订、购车票自动取消,取票密码失效。另一个是后台信息管理程序。商家在此管理列车的相关信息发布,录入、更改车票信息,订单的查询、处理,并管理在网站上注册的用户等。

1.2 模块设计

采用模块化处理思想,将系统划分成一系列功能模块,如表1所示。

表1 模块功能

对每个模块的功能实施细化,各模块完成的功能如下:

(1)个人信息管理功能模块:用户登录、用户注册、用户信息查看、用户信息修改、取回密码、用户注销、添加用户;

(2)信息浏览功能模块:查看公告列表、查看公告内容;

(3)信息查询功能模块:按车次查询车票、按站点查询车票;

(4)订票功能模块:填写订单、浏览订票单、查看订单状态(确认是否能够预定所需车票)、修改车票数量、取消所订车票;

(5)结账功能模块:填写账单、查看订单状态、取消没有处理完的账单;

(6)用户管理功能模块:管理员登录、后台验证、查看用户信息、修改用户信息、删除用户、添加用户、确认用户;

(7)公告管理功能模块:查看公告列表、查看公告内容、添加公告、编辑公告、删除公告;

(8)车票信息管理功能模块:查询车次、添加车票信息、修改车票信息、删除车票信息;

(9)后台订单管理功能模块:订单列表页、订单搜索、订单详细内容页、删除订单、设置订单状态、订单确认;

(10)后台账单管理功能模块:账单搜索、账单内容浏览、修改账单、设置账单状态。

1.3 设计模式

MVC(Model/View/Controller)模式是一种目前广泛流行的设计模式,包括3类对象。简单地说,Model是应用对象,View是它在屏幕上的显示,Controller定义用户界面对用户输入的响应方式。在此模式中,JavaBean作为模型的角色,它充当JSP和Servlet通信的中间工具,Servlet处理完后设置Bean的属性,JSP读取此Bean的属性,然后进行显示。该模式更加明确地把显示和逻辑分离,代码比模式一(JSP+JavaBean)的容易理解,适合于大型项目的开发。

Struts是Apache组织的一个项目,像Apache组织的其它项目一样,它也是开放源码项目。Struts是一个优秀的MVC框架,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理如图1所示。

图1 Struts工作原理

  • 控制:在Struts中,控制器由ActionServlet类来实现。Ac-tionServlet是一个通用的控制组件,提供了处理所有发送到Struts的HTTP请求的入口点。根据配置文件struts-config.xml的配置信息,把请求转发给适当的Action对象。如果该Action对象不存在,ActionServlet会先创建这个Action对象。
  • 视图:主要是由JSP来控制页面输出的。它接收来自Ac-tionForm的数据,利用html,taglib,bean,logic等显示数据。
  • 模型:在Struts中,主要有3种Bean,分别是:ActionForm、Action、JavaBean or EJB。ActionForm用来封装客户请求信息,Action取得Action-Form中的数据,再由EJB或者JavaBean进行处理。

1.4 Struts在本实例中的应用

根据Struts的设计思想,再结合前面的系统功能模块设计,利用面向对象的程序设计思想,归纳出整个系统中需要管理的对象:用户、车票、公告、订单、账单等。经分析得出各个管理对象所对应的Struts组件,包括:ActionServlet、Action-Form、Action、FormBean等,如表2所示。

表2 系统各模块对应的Struts组件

二、系统实现

2.1 运行环境

系统采用Web服务器为Tomcat5.0,数据库为SQLServer2000,Java版本为JDK1.4.2的运行环境,使用DreamWeaver8.0和JSP技术进行网络应用程序的开发,利用JDBC技术对后台数据库进行访问。

2.2 数据库设计

根据前面列出的系统模块和功能列表,设计出相关的数据库表如下:

(1)用户信息表UserInfo_table:用户编号、登录名称、用户名称、用户密码、用户类型、用户性别、用户电话、用户邮件、用户地址、用户邮编、注册时间、用户级别;

(2)用户订单表UserOrder_table:订单号、订单产生日期、订单是否确认、确认时间、订单处理人、订单发送状态、订单接收人姓名、订单接收地址、订单总价;

(3)订单中各项目信息表Item_table:订单号、车次、起始站、终点站、车票数量、车票价格、订单项状态;

(4)车次信息表TrainInfo_table:车次号、起始站、终点站、列车类型、车次信息;

(5)车票站点信息表StInfo_table:站点号、站点名、站点信息;

(6)列车经过某个站点的数据表TrainSt_table:车次号、站点号、价格;

(7)新闻信息表NewsInfo_table:编号、新闻标题、新闻内容、添加日期、更新日期、添加管理员ID、浏览量、排序标记、是否有效;

(8)账单信息表BillInfo_table:账单号、订单号、账单总额、账单接收人、账单密码、付款方式。

2.3 连接池配置

在网上订票系统中采用数据库连接池技术提高访问数据库的效率。在数据源中事先建立了多个数据库连接,这些连接保存在数据库连接池中。Java程序访问数据库时,只需从连接池中取出空闲状态的数据库连接;程序访问数据库结束之后,再将数据库连接放回连接池。在Tomcat_Home\conf\server.xml中加入:

driverClassName//加载驱动

com.microsoft.jdbc.sqlserver.SQLServer Driver

url//设置要连接的数据库名称等信息

jdbc:microsoft:sqlserver://127.0.0.1:1433;Data-

baseName=db

user//设置用户名称

sa

password//设置用户密码

//设置连接的相关属性

maxActive

1000

2.4 Struts配置

创建web.xml文件,这是一个基于Servlet的Web应用程序都需要的部署描述文件,在其中加入对ActionServlet和标签库的描述,部分代码如下所示:

TicOrderServlet//配置Tic

OrderServlet

com.ticketOrder.util.servlets.TicOrder

Servlet

config

/WEB-INF/struts-config.xml

Debug

true

1

TicOrderServlet

*.do

根据以上配置,ActionServlet在Web应用启动时就被加载并初始化,在Web应用中,所有“*.do”形式的URL都由Action-Servlet来处理。在修改完web.xml文件后,在WEB-INF目录下创建struts-config.xml的文件。在struts-config.xml中包含form-beans(定义ActionForm类)、global-forwards(配置全局转发)、action-mappings(配置ActionMapping)、controller和message-resources几个部分。

curity.javabeans.UserForm"/>

type="com.publish.shop.security.javabeans.UserAction"

name="loginForm"

scope="request"

validate="false"

input="/docroot/default.jsp">

2.5 模块功能实现

在配置好服务器、初始化站点、配置数据源和Struts架构后,再进行各个功能模块的开发。以订票模块为例。这一模块包括的内容有:订单的后台业务逻辑实现、预订车票、查询订单、更新订单、取消订单。后台业务逻辑实现采用Struts架构,如图2所示。TicketAction、TicketModel和TicketForm作为Struts构件。TicketModel表示车票信息,它对应数据库表中的字段。TicketForm是BaseForm即ActionForm的子类,具有TicketModel的属性并提供了对TicketModel字段的getX()和setX()方法。Ac-tion包含车票信息管理中所有操作的Action类,如查询、增加、修改和删除等操作,可以通过它调用数据库操作的类。ItemInfo与数据库表中ItemInfo_table中的各个字段相对应,用于保存和传递数据。OrderItem代表了订单中各个项目的信息,如ItemInfo对象、本项订购数量、本项订购车票的金额总额等。OrderBean封装了订单中所有的业务逻辑,包括预订车票、更新数量和取消订票等操作。其它模块的实现与其类似。

图2 订票模块的Struts实现

三、结束语

作为一种新型的电子商务应用,网上预订必将成为“客票发售和预定系统”的一个重要组成部份。Struts为Web应用提供了一个通用的框架,可以大大简化Web应用的开发过程,提高开发效率,缩短开发周期。以上系统的设计与实现,体现了软件工程的设计思想以及在Web应用中使用Struts的方法,可以方便地扩展框架,更好地适应用户的实际需求。

参考文献:

[1]万峰科技.JSP网站开发四“酷”全书:新闻、论坛、电子商城、博客[M].北京:电子工业出版社,2005:271-272.

[2]飞思科技产品研发中心.JSP应用开发详解[M].北京:电子工业出版社,2004:411-412.

[3]陆正中,马进德,石正贵.JBuilder9软件开发项目实践[M].北京:清华大学出版社,2005:73-74.

[4]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004:19-20.

[5]刘晓华,陈亚强.J2EE应用开发详解[M].北京:电子工业出版社,2004:455-462.

[6]关于昆明站网上订票网站[EB/OL].http://ynutx.net/main/view-thread_8761.html.

[7]Holen.Struts中文文档[EB/OL].http://www.jspcn.net/htmldo-wn/11248953012501306.html.

[8]王大全,聂建华,董晓聪.飞机网络订票系统设计报告[EB/OL].http://www.javathinker.org.


相关文章 相关文档 相关课程



深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程

 
分享到
 
 
     


Java 中的中文编码问题
Java基础知识的三十个经典问答
玩转 Java Web 应用开发
使用Spring更好地处理Struts
用Eclipse开发iPhone Web应用
插件系统框架分析
更多...   


Struts+Spring+Hibernate
基于J2EE的Web 2.0应用开发
J2EE设计模式和性能调优
Java EE 5企业级架构设计
Java单元测试方法与技术
Java编程方法与技术


Struts+Spring+Hibernate/EJB+性能优化
华夏基金 ActiveMQ 原理与管理
某民航公司 Java基础编程到应用开发
某风电公司 Java 应用开发平台与迁移
日照港 J2EE应用开发技术框架与实践
某跨国公司 工作流管理JBPM
东方航空公司 高级J2EE及其前沿技术
更多...   
 
 
 
 
 
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号