期刊信息管理系统开发探讨
2010-07-09李睿
李 睿
(湖南省农业科学院科技情报研究所,湖南 长沙 410125)
从广义角度来说,基于Web的信息管理系统并不少见。但传统的B/S架构下的信息管理系统,多采用动态服务器页面(ASP)、超级文本预处理语言(PHP)技术,在执行效率、跨平台性能、成本控制等方面不尽人意,而基于Java Web的开发技术较好地解决了上述问题[1]。目前基于Java Web的信息系统并不多见,采用Java Web开发的期刊信息管理系统更是寥寥无几。为此,对B/S架构下基于Java Web的开发技术进行了讨论,以供开发者参考。
1 主要开发技术介绍
1.1 JSP技术简介及其优势
所谓动态页面文件指的是,当客户请求页面时,Web服务器动态生成文档返回给浏览器,以响应客户的请求。随着线下业务向网上的发展,Web应用越来越复杂,由此产生了各种服务器端页面编写技术,JSP便是其中一种。所谓JSP是Java Server Page的缩写,JSP在HTML页面文件中嵌入Java脚本,从而实现动态网页功能。其中,HTML标签负责页面的布局和显示外观,Java代码负责提取动态数据,实现业务逻辑[2]。JSP代码被编译成Servlet并在Java虚拟机上执行,而这种编译操作仅在对JSP页面的第一次请求时发生。因此,普遍认为,相对于其他的动态页面技术如ASP、PHP等,JSP的执行效率较高。JSP页面响应过程见图1。
1.2 XML
XML是Extensible Markup Language的缩写,即扩展标记语言。由于其严格书写规范和标记可以扩展,因而容易解析,加之其独立于平台,因此在Web应用中它是数据交互的载体。各框架以XML文件作为配置文件,在加载时根据定制,完成诸如拦截器的设置、事务的设置、数据源的配置等工作[3-4]。因此在信息管理系统开发中,相对于代码的编写,XML配置文件的书写显得更为重要。
图1 JSP/Servlet基本页面响应过程
1.3 WEB框架
在一些简单应用中,通过JSP中的JAVA脚本即可直接访问数据,实现业务逻辑,然而在大型应用中,HTML标签与JAVA脚本的混合使用,必将导致表现层与业务逻辑层代码的混杂,可读性降低、开发维护难度增加。WEB框架如同代码的组织者,它实现了MVC模型,分离了表现层与业务层,从而使得代码的结构清晰,层次明确。STRUTS2是最具代表性的WEB框架,这里给出其响应模型,见图2。
图2 STRUTS2框架基本响应模型
2 WEB框架STRUTS2的特点
Struts2框架是目前比较优秀的Java Web框架,且久经市场考验。其特点如下。
2.1 强大的数据转换能力
从客户端Web页面提交的数据,均是字符串数据,服务器端如何将其转换为自己所需的数据类型,是非常棘手的事情。而Struts框架对此提供了强有力的支持。
2.2 强大的拦截器功能
面向对象编程的概念兴起,通过类及其实例化对象,以及类间多态、类的封装等,解决了如何在抽象层面描述自然实体的问题。但随着软件技术的发展,面向对象的不足也显示出来,如如何在A发生时进行B的处理,面向对象技术即不能很好解决。由此,一种新的编程概念出现,那就是面向切面编程,拦截器便是面向切面编程的一个很好的实践,Struts2的拦截器功能十分强大,其自身提供了比较完备的拦截机制,而且通过对struts.xml文件的配置,可以自行扩展拦截器的功能。
2.3 高效的对象图形导航语言(OGNL)
当Web页面的HTTP请求HttpRequest到达Web容器后,容器如何与后台的控制层进行数据交互,控制层中各Action间如何进行数据交互,Action如何实现对Session、Request等对象的访问,若要手工实现是非常不方便的。Struts2扩展了OGNL,提供了值栈这种数据结构,从而方便了框架、容器间的数据交互。
2.4 对AJAX技术的支持
Ajax是Asynchronous Javascript and Xml的缩写,是基于XMLHttpRequest的一组脚本技术的简称,它能够以DOM文档的形式返回内容,可以同步或异步地返回WEB服务器的响应。通俗地来说,使用Ajax技术带来的最直观的感受就是,可以在不跳转页面的情况下,实现页面内容的更新。也就是说可以在客户不察觉的情况下实现前后的交互,该技术的主要目的是改善客户体验。作为前后台数据交互的桥梁,Ajax既可采用XML格式的数据,也可采用JSON格式的数据,相对于XML数据而言,JSON数据是轻量级的,解析也更为简单。Struts2的扩展性非常良好,可以通过增加插件的形式,提供对JSON字符串自动解析的功能,同时,也可以非常方便地提供对AJAX框架如JQUERY等的支持。
3 小结
3.1 期刊信息管理系统的模型结构
期刊信息管理系统的层次模型见图3。
图3 期刊信息管理系统所采用的层次模型及实现技术
3.2 期刊信息管理系统开发的技术路径技术思路
经过分析,可以明确期刊信息管理系统Java Web开发的技术构成,基于此,提出期刊信息管理系统开发的技术思路如下。首先根据期刊的业务流程,采用统一对象建模语言(UML),对系统进行用例分析,以确定系统的基本功能,根据系统功能,进行类图的设计,再通过顺序图、状态图等确定类间的联系,以及类的状态的变化;然后,根据UML的结果,分层次进行系统开发,在系统后台数据库的开发过程中可使用Hibernate简化开发工作,获取所需数据库及数据表,在系统前台的开发过程中可使用JSP页面技术,并采用AJAX与后台进行数据交互,在控制层的开发中,可以使用Struts2框架进行业务逻辑控制,使用Spring框架进行事务管理、数据源配置等工作,同时还可以采用通用数据访问接口(DAO)细化开发层次;最后,在开发过程中,采用Junit进行测试工作,以保障开发的顺利进行[5-6]。
[1]孙 鑫.Java Web开发详解[M].北京:电子工业出版社,2008.
[2]孙 鑫.STRUTS2深入详解[M].北京:电子工业出版社,2008.
[3]Elliot J.Hibernate程序高手秘笈[M].南京:东南大学出版社,2007.
[4]丁跃潮,张 涛,叶文来,等.XML实用教程[M].北京:北京大学出版社,2006.
[5]Alan Shalloway,James R.Trott.设计模式精解[M].北京:清华大学出版社,2004.
[6]萨师煊,王 珊.数据库系统概论[M].北京:高等教育出版社,2000.