MVC构建的国际化动态技术在广州市政府政务网站的设计与实现

2016-03-22 15:54邓容
电脑知识与技术 2016年1期
关键词:电子政务

邓容

摘要:电子政务网站面对着全球经济一体化和政府上网业务的逐步深入,需要向多语言和国际化发展。静态的多语言解决方案虽然具有操作简单,浏览高速的优点,然而其缺点很大,越来越不适应当今纷繁复杂的电子政务系统的整体解决的需求。国际化动态技术可以解决静态语言解决方案在这些方面的不足。该文重点介绍国际化动态技术在广州市政府政务网站中的设计与实现,阐述其特征和原理,描述其如何在广州市政府政务网站中实现基于MVC架构的WEB程序的国际动态设计方案和具体实现机制。

关键词:电子政务;多语言;动态国际化;MVC架构

中图分类号:TP302 文献标识码:A 文章编号:1009-3044(2016)01-0263-03

Research and Apply in GZ E-Government Website with Dynamic Internationalization Technology based on MVC Architecture

DENG Rong

(Guangdong Marine Vocational and Technical School,Guangzhou 510320,China )

Abstract: With the development of GZ E-Government Website Project and economic globalization, the internationalization technology support is efficient for the e-government website. Dynamic muli-language solution is take over the static mode. The traditional static technology cannot meet the requirements for e-government website as this approach has many limitations. But Dynamic internationalization technology may solve it.The article design the principle of muli-language dynamic mechanism, analyzes how to implement the GZ E-Government Website Project based on Struts and MVC pattern, and the advantage of simple implements and fast access.

Key words:E-government;multi-language;Dynamic internationalization;MVC architecture

1 多语言的静态解决方案

由于广州市政府政务网站上网工程的深入和系统越发繁杂庞大,以及广州作为国际化大都市,需要在国际间信息全球化交互,广州市政府政务网站的多语言版本需求具有必要性和广泛性。初期,业务需求要求不高,技术水平低下,平台架构处于简单阶段,对于多语言解决方案,企业通常会采用静态方案来解决业务需求,其工作基本思想是根据每一种场景语言开发一套页面文件,当用户切换语言场景时,页面中转到相应的语言场景中。

多语言静技术支持在技术水平不高,平台结构简单的初期还是具有一定的优势。一方面,广州市政府电子政务网站的业务量不大,功能相对单一,技术上约束,系统架构就采用了静态方案来完成系统多语言功能。另一方面,这种静态技术支持在一定情况下处理浏览页面能高速高效,用户体验好,开发实现起来也简单方便,但是当遇到复杂的业务逻辑问题,尤其是广州政府政务网站的资讯的扩展,不但要求资讯的展示和公告的发布,还要求有复杂的数据交互和业务的逻辑处理。在这种需求下,多语言静态支持已经越来越达不到当今广州政府政务网站国际化的多语言的需求。它的不足之处有:①难以支持动态网站的需求变动:现在绝大多数的网站的数据从数据库里动态获取;②占用太多系统空间:存在大量的无关于语言的重复的页面信息,提高导致空间的浪费和占用。③一定程度上阻碍了后期的维护工作和二次开发:网站需求发生变更时,会导致浪费时间和人力资源在大量页面文件修改工作上。

多语言国际化动态技术支持则可以高效地解决多语言静态技术上的约束与不足,其工作原理:采用语言变更表示页面中与语言版本和页面输出有关的地方,再通过不同的语言场景给语言变量赋予不相同的值,然后实现在不同的语言场景中输出不相同的语言提示。如:变量“@title”,用户切换英语环境时赋英文值为“Title”,当用户切换中文环境时赋简体中文值为“标题”,这样就可以根据不同的语言环境输出。归纳总结分析得出,多语言动态解决方案只有一份页面显示文件,根据与语言相关的数据保存为不同的文件,当用户切换到相应的语言环境中即可动态生成不同的语言的提示对话框。此技术既解决了系统空间浪费的问题也有利于以后的扩展和维护工作进行。

2 广州政府政务网站中Struts和MVC架构国际化多语言动态解决方案的实施

Struts架构是一个开源的架构,其源代码免费开,提供了Model-View-Controller(模型-视图-控制器)模式给java 开发程序,Tomcat是WEB服务器最常用的Java技术,Struts架构与Tomcat配合使用。同时它还能更好地适应用户的需求变动,如提供定制和扩展的地方,使系统进一步扩展架构。而且,Struts框架为开发人员提供便利的Web程序和各种完善的国际化功能。此外, Struts和MVC模式是基于Java语言的电子政务网站平台,其性能技术优秀。本文的实际案例是在Struts和MVC模式上研究多语言动态技术支持在广州政府政务网站的具体实现。

2.1 设置Server端数据

当前,数据传输最常用的两种技术,第一种是POST传送方式,这种方式的原理不把表单数据放在URL中,而且是作为数据体传送给服务器,故URL中没有表单的数据。另一种是GET方式,把表单数据使用问号将其相连,并加在URL当中,运用指定程序进行处理。在Tomcat WEB Server中,使用缺省的ISO-8859-1编码在这两种参数中。当系统需要获取非英语字段时,在Server端设置Request的参数gdtParameter(),返回的结果是乱码,所以经改良,使用以下方法来支持多语言,设置ISO-ISO-8859-18859-1改为UTF-8。假如发现JSP中找不到,则可以设置JVM的默认值file.Encoding,通常下,其默认值ISO-8859-1。故要事先对所有JSP网页设置指定char set为UTF-8。

两种参数传递的编码方式在Tomcat5.0中都有不同的设置

POST方法的数据设置。加入一个过滤有器,用户的全部HTTP请求都要首先经过这个过滤器编码方式过滤来保证所编码的一致性。具体操作如下:在文件夹中的\GZ-WEBapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到GZ-WEBapp目录/filters下,在WEB.Xml中加入对过滤器的调用即可完成过滤器的添加。

GET方法数据的设置。GET方式提交请求时出现乱码问题的解决方法:在tomcat中设置server.xml文件,并加入URLEncoding= “UTF-8”在Connector区域中。这样操作,乱码问题即可解决。

Tomcat Server端的设置到此为止可以完成。

2.2 View层的实现

为实现国际化WEB程序系统,禁在特定的语言场景中出现非特定语言等不相关的数据信息,网页设计时需要把把特定的提示信息放在特定的资源文件里面。以下介绍配置Struts-config.xml中指定资源文件e-resources,如法语资源文件GZ_GOV_ApplicationResources_fr.properties存放有关法语的提示信息,并在用户切换到该环境时系统在此提取提示信息。Struts会根据终端的Locale调用相对应的资源文件,其中bean:measage标签可以从中获取到相对应的提示信息。英文,简体中文,繁体中文,日语也是同样原理。最终达到支持多语言动态技术的目的。

2.3 Controller层的设计

在操作环境中默认设置Locale,因为JVM虚拟机在开启时会查询操作系统。WEB服务器在本地环境会使用默认Locale;而对于某次指定的终端,WEB服务器会在HTTP中获得Locale的数据。因为Web Server不与User端Browser长时间连着,故在会在HTTP请求中每次包含Locale数据并发送到WEB Server。Struts中要把指定locale放在session范围内,设置为 文件locale默认true。

这里特意编写了一个LocaleAction.java类,并使用两个参数country和language,用来表示切换语言场景后的国家和语言。在要切换语言场景的页面中写入并执行LocaleAction.java的动作,为达到实现动态改变显示切换语言环境的功能,再传入language和country的值。

2.4 Model层的设计

标准DB(数据库)设计。为了实现支持切换多语言环境,在系统维护中对数据库表组织的影响非常大。由于系统环境中有很多与语言无关的数据, 造成数据库数据冗余,浪费资源空间,降低性能,加重负担。倘若采取字段上使用多语言技术的方法,会使数据表结构依赖系统的语言设置,当系统需要扩展时,如语言进行增删改时,会导致数据表字段的变化。所以更好更标准的数据设计采用“表级别”上使用多语言技术,具体设计思路是只允许与语言有关的数据存放在相应的表中,而把所有与语言无关的数据存放在一张表中。这样的处理方式即提高性能,节省资源空间,在增加语言再建立一个与之对应的语言表,加大了维护和扩展的力度。

DB(数据库)编码。因为DB中前台的网页页面使用UTF-8的编码方法来存放着大量的多语言的相关信息,所以后台DB中的编码方法也是使用UTF-8。在初建数据库时应该约定数据库和数据库表中使用的编码方法是UTF-8,以防出现以前的编码方式和以后的编码方式不一样的问题。

3 广州政府政务电子网站系统应用的实际案例

广州政府政务电子网站业务扩大国际化范围,要求实现英文、简体中文,繁体中文,法文,日本五种语言。系统采用了以Jakarta—Struts1.2.7来实现MV框架,实现基于Struts和MVC模式的多语言技术支持,并使用Apache Tomcat 5.5为Web Server。

1)model层。系统使用Mysql数据库,SQL语句如下:

CREATE DATABASE GZ_GOV_table_name DEFAULT CHARACIER SET UTF8;

CREATE GZ_GOV_table table_name()ENGINE=InnoDB DEFAULT CHARSET=UTF8

并且用set names UTF-8来声明使用Mysql连接user端,搜索和输出结果的字符集都是UTF-8。

2) Controller层。Controller(控制)层中,在处理编码转换和Action数据保存上,使用两个过滤器来完成,分别是SetCharacterEncoding系统Filter和LocaleFilter,同时使用LocaleAction类执行多语言技术的转变。

3)View层。Struts提供五种语言的支持多语言的资源文件。如下:

GZ_GOV_ApplicationResources-zh.properties(简体中文资源文件)

GZ_GOV_ApplicationResources-tw.properties(繁体中文资源文件)

GZ_GOV_ApplicationResources-en.properties(英语资源文件)

GZ_GOV_ApplicationResources-fr.properties(法语资源文件)

GZ_GOV_ApplicationResources-jp.properties(日语资源文件)。

用JSP技术实现程序的view层,显示语言数据时使用标签bean:message引用。如显示标题时使用

4)当修改与语言相关的数据时,修改View层的数据资源文件和Model表数据就可以了,这些处理的优势是维护起来方便。

5)在View层中会新增对应的数据文件在新添语言的支持上;在Control层中对LocaleAction类进行扩充;在Model层中,新增表结构以存放新语言数据内容。这样很方便地对新添语言进行技术支持和提供解决方案。

4 结束语

广州政府政务电子网站WEB应用多语言国际化动态解决方案和全球国际化业务是业务发展的趋势。静态多语言技术已经不适合当今电子政务网站的发展,取而代之的是国际化多语言动态解决方案。而且在长远的时代发展中,国际多语言技术必然得到更为广泛的应用与推广。然后动态多语言技术自身还没存在一定的缺点,比如动态产生语言信息会导致性能降低。可以使用性能优化和其他网站搭建等方法来解决。本文就不一一细讲了。在各大应用程序中,需要考虑多方面的因素,制定切实可行,方便维护和拓展的多语言动态技术支持方案。

参考文献:

[1] 孙卫琴.精通Struts:基于MVC的JavaWEB设计与开发[M].北京:电子工业出版社,2OO4.

[2] 多语言网站开发[EB/OL].http://www.cnbruce.com/blog,20O5-5-18.

[3] The Apache Software Foundation, Struts相关文档. http://struts.apache.org.

[4] 张正礼. ASP.NET MVC4架构实现与项目实战[M].清华大学出版社,2014.

[5] 王新. 基于MVC和EF架构的监理信息系统开发实践[M].冶金工业出版社,2015.

[6] 沈文轩. 软件工程基础与实用教程——基于架构与MVC模式的一体化开发[M].清华大学出版社,2012.

[7] 孙卫琴. TOMCAT与JAVA WEB开发技术详解[M].电子工业出版社,2009.

[8] 贾森· 布里泰恩,伊恩· 达尔文. Tomcat权威指南[M].中国电力出版社,2009.

[9] 林龙. JSP+Servlet+Tomcat应用开发从零开始学[M].清华大学出版社,2010.

[10] 贾蓓,镇明敏,杜磊. Java Web整合开发实战——基于Struts 2+Hibernate+Spring[M].清华大学出版社,2013.

[11] 段鹏松,李占波. 轻量级Java Web整合开发入门——Struts2+Hibernate4+Spring3[M].清华大学出版社,2015.

[12] 张洪伟.Java开发利器:Tomcat Web开发及整合应用[M].清华大学出版社,2006.

[13] 孙卫琴,李洪成.开发专家之Sun ONE:Tomcat与Java Web开发技术详解[M].清华大学出版社,2008.

[14] 蔡剑,景楠.Java Web应用开发:J2EE和Tomcat.Java Web应用开发:J2EE和Tomcat,2005.

[15] 希赛IT发展研究中心组.贯通Java Web开发三剑客:Eclipse+Tomcat+Ant整合开发[M].电子工业出版社,2008.

[16] 刘中兵.精通Tomcat——Java Web应用开发、框架分析与组件配置、系统集成与案例实战[M].清华大学出版社,2007.

[17] 陈菁菁.程序员突击——Tomcat原理与Java Web系统开发[M].清华大学出版社,2009.

[18] 封超,晁阳.Tomcat与Java Web开发技术详解[M].清华大学出版社,2008.

[19] 杨晓军. MVC Web开发学习实录[M].清华大学出版社,2011.

[20] 伊雯雯. 基于MVC的Java Web开发项目式教程[M].人民邮电出版社,2014.

猜你喜欢
电子政务
论基于云的电子政务服务平台构建
电子政务在高校行政管理中的应用探析
基于SOA的电子政务平台的设计研究
云计算在电子政务系统中的影响研究
我国电子政务系统的安全分析与防范
电子政务与政府行政管理的变革
电子政务工程项目绩效评价研究
智慧城市时代的电子政务研究
基于系统动力学的城市电子政务系统仿真分析
电子政务中安全问题的相关研究