北京理工大学工程硕士学位论文
应代码设计。主要包括:系统总功能结构设计、完成系统主要实现的功能制定及功能结构图、数据库设计、主要完成系统数据的概念设计、逻辑设计及存储设计、系统流程设计、完成本设计各模块操作流程的设计、系统输入、输出设计,主要完成系统数据的输入及输出设计。
第五章 系统实施:本章简要论述了系统实施部分的相关内容,主要包括系统的各个界面设计,程序设计和系统测试,然后完成系统投入运行前的安装测试相关工作,如对系统的容错性和安全性进行分析,并完成对系统存在问题的修正,确保本系统的安全运行。
第六章 结论:本章主要是对设计开发的的整体功能情况及开发期间的相关进行总结,并对自己在整个开发过程中的学习体会进行总结。
致谢:本章主要阐述在开发过程中,对老师、同事的帮助与鼓励表示感谢。
12
北京理工大学工程硕士学位论文
第二章 系统开发环境介绍
本系统的开发采用了MVC框架作为设计平台,使用Apache Tomcat作为网站服务器,以JAVA语言作为实现语言。Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。采用了JAVA的开源项目Spring、Struts、Hibernate框架,来灵活简单的实现MVC框架。采用了MYSQL数据库作为底层数据存储。并使用FCKeditor作为在线编辑器,来实现编辑所见即所得的功能。
2.1 Apache服务器
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。Apachehttp server是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
Apache web服务器软件拥有以下特性:
a) 模块化:支持多种语言或脚本引擎,如Perl/MoPerl、JSP/PHP等 b) 安全性高:由于开放源代码,通常存在的完全性问题会被及时发现和解决 c) 扩展性好:支持多种操作系统,而配置与安装基本相似
13
北京理工大学工程硕士学位论文
d) 可移植性好:在异构操作系统中,配置与安装基本相似。
e) 性能优异:可以自定义运行参数、编译环境,以适应不同Web环境的承载。 f) 多线程:支持UINX运行POSIX线程,和Windows的多线程等
g) 多种语言支持:支持UTF-8、GB2312、Shift JIS、BIG5等多种字符集编码。
2.2 MVC技术选择 (1)Struts技术介绍
Jakarta Struts Framework 是一个开放源代码的Apache项目,已经成为利用Java Servlet 和Java Server Page(JSP)技术构建Web应用程序的最流行的表示框架包。它推动形成了基于Model-View-Controller(MVC)设计模式的应用程序框架。
Struts的体系结构包括视图(View)、模型(Model)和控制器(Controller)三个部分: a) 视图(View):Stuts的视图主要是JSP文件。Struts提供了许多定制JSP标签,
它们使用起来简单、功能强大,在创建视图界面的时候使用Struts标签可达到事半功倍的效果。常用的Struts标签包括Bean Tags、Logic Tags、Html Tags、Nested Tags和Template Tags等。
b) 模型(Model):模型组件代表应用的业务数据和逻辑Struts中系统模型的状
态主要由ActionForm Bean和值对象来体现。
c) 控制器(Controller):Struts的控制器主要是ActionServlet,但是操作业务逻
辑的则是Action、ActionMapping和ActionForward,它们几个共同协助完成业务逻辑的工作。其中Action是真正的业务逻辑的实现者,ActionMapping和ActionForward的任务是指定不同业务逻辑或流程的运行方向。
(2)Hibernate技术介绍
Hibernate是Java应用和关系数据库之间的桥梁,它能进行Java对象和关系数据库之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供面向对象的数据访问API。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的优点:
a) 它支持各种关系数据库,从一对一到多对多的各种复杂关系。 b) 对象/关系数据库映射(ORM)
14
北京理工大学工程硕士学位论文
它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想 c) 透明持久化(persistent)
d) 事务Transaction(org.hibernate.Transaction) e) 它没有侵入性,即所谓的轻量级框架 f) 移植性会很好
g) 缓存机制,提供一级缓存和二级缓存 h) 简洁的HQL编程
(3)Spring技术介绍
Spring 表示是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了低耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),
15