CN103645913A - J2ee系统中的语言加载方法及装置 - Google Patents
J2ee系统中的语言加载方法及装置 Download PDFInfo
- Publication number
- CN103645913A CN103645913A CN201310573846.XA CN201310573846A CN103645913A CN 103645913 A CN103645913 A CN 103645913A CN 201310573846 A CN201310573846 A CN 201310573846A CN 103645913 A CN103645913 A CN 103645913A
- Authority
- CN
- China
- Prior art keywords
- language
- j2ee
- value
- client
- j2ee system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 43
- 235000014510 cooky Nutrition 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 4
- 230000009977 dual effect Effects 0.000 claims description 4
- 230000007423 decrease Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种J2EE系统中的语言加载方法及装置,所述方法包括如下步骤:获取客户端的IP,并根据所述IP得到客户端的地址信息;获取与所述地址信息相对应的使用语言;读取客户端上一次连接服务器时保存在cookie中的语言值,并在所述语言值不为空的情况下,判断所述语言值与所述使用语言是否相同;若是,则根据所述使用语言读取相应的资源文件并加载到J2EE系统中。本发明的J2EE系统中的语言加载方法及装置,有效提高了语言加载的效率,保证用户能够正常使用J2EE系统,而且节省了系统运行的内存,使系统的运行速度更快,并且增加或减少系统语言或语言种类更加简单、方便。
Description
技术领域
本发明涉及计算机网络领域,特别是涉及一种J2EE系统中的语言加载方法以及一种J2EE系统中的语言加载装置。
背景技术
目前,J2EE(Java2Platform,Enterprise Edition,Java2平台企业版)实现的系统多是单语言系统,即系统语言等只以一种语言显示,且语言设置是在系统程序文件里面,用户连接系统只能选择开发者默认的那种语言。这样的系统是不科学的,也是不便捷的,因为使用的人群会因为语言的限制而变得狭窄。
随着近年来国际化合作越来越普遍,对J2EE多语言系统的要求越来越多。事实上,无论是单语言系统还是多语言系统,他们共同的特点就是:系统在完成的时候要默认加载一种语言,比如汉语或者英语。只不过在多语言系统下,用户可以找到修改语言的地方,通过自己手动进行修改从而更换系统语言。但是这样有一个很不好的地方,例如系统当前默认加载的是汉语,那么汉语不好的外国用户初次连接J2EE系统时,该外国用户将根本就看不懂甚至找不到修改语言的地方,从而无法正常使用J2EE系统;同理,如果当前默认加载语言为英语,此时英语不好的用户也无法正常使用J2EE系统。
因此,在J2EE多语言系统环境下,如何更高效的加载用户真正想要展现的语言,从而保证用户正常使用J2EE系统,成为一个亟待解决的问题。
发明内容
基于此,本发明提供一种J2EE系统中的语言加载方法及装置,能够提高语言加载效率。
为实现上述目的,本发明采用如下的技术方案:
一种J2EE系统中的语言加载方法,包括如下步骤:
获取客户端的IP,并根据所述IP得到客户端的地址信息;
获取与所述地址信息相对应的使用语言;
读取客户端上一次连接服务器时保存在cookie中的语言值,并在所述语言值不为空的情况下,判断所述语言值与所述使用语言是否相同;
若是,则根据所述使用语言读取相应的资源文件并加载到J2EE系统中。
一种J2EE系统中的语言加载装置,包括:
地址信息获取模块,用于获取客户端的IP,并根据所述IP得到客户端的地址信息;
使用语言获取模块,用于获取与所述地址信息相对应的使用语言;
判断模块,用于读取客户端上一次连接服务器时保存在cookie中的语言值,并在所述语言值不为空的情况下,判断所述语言值与所述使用语言是否相同;
第一加载模块,用于在所述判断模块的判断结果为是的情况下,根据所述使用语言读取相应的资源文件并加载到J2EE系统中。
由以上方案可以看出,本发明的J2EE系统中的语言加载方法及装置,通过获取客户端的连接ip地址以及上次连接服务器时保存在cookie中的语言值,自动分析出用户常用的语言,然后选择相应的资源文件进行加载,让用户连接J2EE系统就可以很自然的看到自己熟悉的语言,这样一来不仅给用户一个亲切的操作界面,还省去了多语言环境下需要自己动手去选择语言的麻烦,有效提高了语言加载的效率,保证用户能够正常使用J2EE系统;而且本发明通过使用资源文件来读取语言信息,避免了通过系统程序文件调用语言信息的方式,从而节省了系统运行的内存,使系统的运行速度更快;此外,本发明把系统语言通过资源文件存储而不是在系统程序文件中读取,当增减语言时只要更改资源文件即可,这样一来增加或减少系统语言或语言种类更加简单、方便。
附图说明
图1为本发明一种J2EE系统中的语言加载方法的流程示意图;
图2为本发明一种J2EE系统中的语言加载装置的结构示意图。
具体实施方式
下面结合附图以及具体的实施例,对本发明的技术方案作进一步的描述。
参见图1所示,一种J2EE系统中的语言加载方法,包括以下步骤:
步骤S101,获取客户端的IP(Internet Protocol,互联网协议),并根据所述IP得到客户端的地址信息。
获取客户端的IP的方法有很多,本发明实施例中,可以使用如下代码来获取客户端的IP:
public String getIpAddr(HttpServletRequestrequest){
String ip=request.getHeader("x-forwarded-for");
if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){
ip=request.getHeader("Proxy-Client-IP");
}
if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){
ip=request.getHeader("WL-Proxy-Client-IP");
}
if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){
ip=request.getRemoteAddr();
}
return ip;
}
另外,本发明实施例中,可以预先准备一个完整的IP地址库,该IP地址库具备各个国家、地区的IP地址段,在获得客户端的IP后,将所述IP在IP地址库中进行匹配,即可得到客户端的地址信息(如该客户端属于哪个国家、哪个地区)。
步骤S102,获取与所述地址信息相对应的使用语言。如假设地址信息显示为美国,则可知与该地址信息相对应的使用语言是英语。
步骤S103,读取客户端上一次连接服务器时保存在cookie中的语言值,如“汉语”、“英语”等;并在所述语言值不为空的情况下(只要存在某种语言则说明语言值不为空),判断所述语言值与所述使用语言是否相同;如果相同则进入步骤S104。
步骤S104,若步骤S103中判断的结果为所述语言值与所述使用语言相同,则根据所述使用语言读取相应的资源文件并加载到J2EE系统中。
需要说明的是,传统方案中通过系统程序文件来调用语言信息,而本发明中则通过使用资源文件来读取语言信息。本发明中所预先编写好的资源文件的文件类型为proterties,系统需要几种语言就预先创建几个资源文件,并且文件名称需要标示(比如英语的资源文件名称为xitong_en.proterties,汉语的资源文件名称为xitong_ch.proterties),资源文件可以使用myeclipse工具编写,资源文件编写有两个属性:一个是name(资源文件名),一个是value(系统语言信息)。name值是我们在程序中调用的,在系统显示的是后面的value值,所以name值在各个语言资源文件中是不变的,value值则是不同语言的系统。资源文件加载之后,J2EE系统从中根据name读取value信息,并将value信息应用到J2EE系统中,即可实现系统的语言显示。
作为一个较好的实施例,若步骤S103中判断的结果为所述语言值与所述使用语言不相同,如cookie中的语言值为汉语,而根据客户端的IP所获取到的使用语言却是英语,此时由于发生了冲突,因此可以根据所述语言值与所述使用语言生成一个双语言选择框,如在这个生成的双语言选择框中将汉语、英语列出来供用户选择,让用户在这两种语言选择一种;用户完成选择后会有一个返回结果,此时,客户端可以根据所述双语言选择框的返回结果读取对应的资源文件并加载到J2EE系统中。
采用本发明的方案,J2EE系统默认语言是不固定的,是根据用户的连接IP地址来准确的匹配到用户的IP是哪个国家或地区,然后又根据用户上次连接服务器时保存在cookie中的语言值进行二次验证,采用这两种方式的混合判断,保证J2EE系统最终为用户选择最舒适的语言,这样可以给用户带来良好的体验,也省去了因为语言不懂的麻烦。例如,有个别特殊情况,如一个中国人拿着自己的电脑到英国出差,我们若只根据IP进行判断,则必定给用户自动选择英语进行加载,但是实际上最适合该用户的应该是汉语;所以,我们通过将cookie中保存的上一次语言值和IP地址分析出来的值进行匹配,如果不相同的话,就让用户自己选择其中一种,从而保证了用户能够正常使用J2EE系统。
作为一个较好的实施例,在步骤S103中,若所述语言值为空,则可以直接根据步骤S102中获取到的使用语言来读取相应的资源文件并加载到J2EE系统中。
另外,作为一个较好的实施例,在步骤S103读取相应的资源文件并加载到J2EE系统之后,还可以包括如下步骤:根据所述资源文件中的系统语言信息更新所述cookie中的语言值。通过将用户本次所使用的语言保存在cookie中,方便和下次连接作对比。
与上述一种J2EE系统中的语言加载方法相对应,本发明还提供一种J2EE系统中的语言加载装置,如图2所示,包括:
地址信息获取模块101,用于获取客户端的IP,并根据所述IP得到客户端的地址信息;
使用语言获取模块102,用于获取与所述地址信息相对应的使用语言;
判断模块103,用于读取客户端上一次连接服务器时保存在cookie中的语言值,并在所述语言值不为空的情况下,判断所述语言值与所述使用语言是否相同;
第一加载模块104,用于在所述判断模块的判断结果为是的情况下,根据所述使用语言读取相应的资源文件并加载到J2EE系统中。
作为一个较好的实施例,所述地址信息获取模块可以包括:
IP匹配模块,用于将所述IP在IP地址库中进行匹配,得到客户端的地址信息。
作为一个较好的实施例,所述J2EE系统中的语言加载装置还可以包括:
第二加载模块,用于在所述语言值为空的情况下,根据所述使用语言读取相应的资源文件并加载到J2EE系统中。
作为一个较好的实施例,所述J2EE系统中的语言加载装置还可以包括:
双语言选择框生成模块,用于在所述判断模块的判断结果为否的情况下,根据所述语言值与所述使用语言生成一个双语言选择框;
第三加载模块,用于根据所述双语言选择框的返回结果读取对应的资源文件并加载到J2EE系统中。
作为一个较好的实施例,所述J2EE系统中的语言加载装置还可以包括:
cookie更新模块,用于在读取相应的资源文件加载之后,根据所述资源文件中的系统语言信息更新所述cookie中的语言值。通过将用户本次所使用的语言保存在cookie中,方便和下次连接作对比。
可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一加载模块称为第二加载模块,且类似地,可将第二加载模块称为第一加载模块。第一加载模块和第二加载模块两者都是加载模块,但其不是同一加载模块。
上述一种J2EE系统中的语言加载装置的其它技术特征与本发明的一种J2EE系统中的语言加载方法相同,此处不予赘述。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。
通过以上方案可以看出,本发明的J2EE系统中的语言加载方法及装置,通过获取客户端的连接ip地址以及上次连接服务器时保存在cookie中的语言值,自动分析出用户常用的语言,然后选择相应的资源文件进行加载,让用户连接J2EE系统就可以很自然的看到自己熟悉的语言,这样一来不仅给用户一个亲切的操作界面,还省去了多语言环境下需要自己动手去选择语言的麻烦,有效提高了语言加载的效率,保证用户能够正常使用J2EE系统;而且本发明通过使用资源文件来读取语言信息,避免了通过系统程序文件调用语言信息的方式,从而节省了系统运行的内存,使系统的运行速度更快;此外,本发明把系统语言通过资源文件存储而不是在系统程序文件中读取,当增减语言时只要更改资源文件即可,这样一来增加或减少系统语言或语言种类更加简单、方便。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种J2EE系统中的语言加载方法,其特征在于,包括如下步骤:
获取客户端的IP,并根据所述IP得到客户端的地址信息;
获取与所述地址信息相对应的使用语言;
读取客户端上一次连接服务器时保存在cookie中的语言值,并在所述语言值不为空的情况下,判断所述语言值与所述使用语言是否相同;
若是,则根据所述使用语言读取相应的资源文件并加载到J2EE系统中。
2.根据权利要求1所述的J2EE系统中的语言加载方法,其特征在于,根据所述IP得到客户端的地址信息的过程包括:
将所述IP在IP地址库中进行匹配,得到客户端的地址信息。
3.根据权利要求1所述的J2EE系统中的语言加载方法,其特征在于,若所述语言值为空,则直接根据所述使用语言读取相应的资源文件并加载到J2EE系统中。
4.根据权利要求1或2或3所述的J2EE系统中的语言加载方法,其特征在于,若判断的结果为所述语言值与所述使用语言不相同,则根据所述语言值与所述使用语言生成一个双语言选择框;
根据所述双语言选择框的返回结果读取对应的资源文件并加载到J2EE系统中。
5.根据权利要求4所述的J2EE系统中的语言加载方法,其特征在于,在读取相应的资源文件并加载之后,还包括步骤:
根据所述资源文件中的系统语言信息更新所述cookie中的语言值。
6.一种J2EE系统中的语言加载装置,其特征在于,包括:
地址信息获取模块,用于获取客户端的IP,并根据所述IP得到客户端的地址信息;
使用语言获取模块,用于获取与所述地址信息相对应的使用语言;
判断模块,用于读取客户端上一次连接服务器时保存在cookie中的语言值,并在所述语言值不为空的情况下,判断所述语言值与所述使用语言是否相同;
第一加载模块,用于在所述判断模块的判断结果为是的情况下,根据所述使用语言读取相应的资源文件并加载到J2EE系统中。
7.根据权利要求6所述的J2EE系统中的语言加载装置,其特征在于,所述地址信息获取模块包括:
IP匹配模块,用于将所述IP在IP地址库中进行匹配,得到客户端的地址信息。
8.根据权利要求6所述的J2EE系统中的语言加载装置,其特征在于,还包括:
第二加载模块,用于在所述语言值为空的情况下,根据所述使用语言读取相应的资源文件并加载到J2EE系统中。
9.根据权利要求6或7或8所述的J2EE系统中的语言加载装置,其特征在于,还包括:
双语言选择框生成模块,用于在所述判断模块的判断结果为否的情况下,根据所述语言值与所述使用语言生成一个双语言选择框;
第三加载模块,用于根据所述双语言选择框的返回结果读取对应的资源文件并加载到J2EE系统中。
10.根据权利要求9所述的J2EE系统中的语言加载装置,其特征在于,还包括:
cookie更新模块,用于在读取相应的资源文件加载之后,根据所述资源文件中的系统语言信息更新所述cookie中的语言值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310573846.XA CN103645913B (zh) | 2013-11-15 | 2013-11-15 | J2ee系统中的语言加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310573846.XA CN103645913B (zh) | 2013-11-15 | 2013-11-15 | J2ee系统中的语言加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103645913A true CN103645913A (zh) | 2014-03-19 |
CN103645913B CN103645913B (zh) | 2017-12-01 |
Family
ID=50251136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310573846.XA Expired - Fee Related CN103645913B (zh) | 2013-11-15 | 2013-11-15 | J2ee系统中的语言加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103645913B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990976A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种网页脚本加载方法和装置 |
CN109190133A (zh) * | 2018-11-08 | 2019-01-11 | 深圳市友杰智新科技有限公司 | 一种翻译语言自动切换方法及装置 |
CN109302425A (zh) * | 2018-11-28 | 2019-02-01 | 河北省科学院应用数学研究所 | 身份认证方法及终端设备 |
CN109582428A (zh) * | 2018-12-06 | 2019-04-05 | 广东浪潮大数据研究有限公司 | 一种调整bios页面显示语言的方法、装置和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646595B1 (en) * | 2002-08-09 | 2003-11-11 | Motorola, Inc. | Scalable, reconfigurable GPS receiver |
CN1677416A (zh) * | 2005-03-01 | 2005-10-05 | 陈汉奕 | 域名位置多语种多媒体广告系统及其与域名结合的方法 |
CN1975668A (zh) * | 2006-12-31 | 2007-06-06 | 金蝶软件(中国)有限公司 | 一种支持多语言的系统及输入、读取多语言数据的方法 |
CN101714086A (zh) * | 2009-12-22 | 2010-05-26 | 中兴通讯股份有限公司 | 一种软件界面语言的选择方法及装置 |
CN102360391A (zh) * | 2011-10-21 | 2012-02-22 | 福建星网锐捷网络有限公司 | 页面显示方法、装置和系统 |
CN102426485A (zh) * | 2011-11-11 | 2012-04-25 | 深圳Tcl新技术有限公司 | 电子终端的多国语言键盘使用方法及装置 |
CN103268566A (zh) * | 2013-05-23 | 2013-08-28 | 新疆卡尔罗媒体科技有限公司 | 一种社交网络平台系统及互动方法 |
-
2013
- 2013-11-15 CN CN201310573846.XA patent/CN103645913B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646595B1 (en) * | 2002-08-09 | 2003-11-11 | Motorola, Inc. | Scalable, reconfigurable GPS receiver |
CN1677416A (zh) * | 2005-03-01 | 2005-10-05 | 陈汉奕 | 域名位置多语种多媒体广告系统及其与域名结合的方法 |
CN1975668A (zh) * | 2006-12-31 | 2007-06-06 | 金蝶软件(中国)有限公司 | 一种支持多语言的系统及输入、读取多语言数据的方法 |
CN101714086A (zh) * | 2009-12-22 | 2010-05-26 | 中兴通讯股份有限公司 | 一种软件界面语言的选择方法及装置 |
CN102360391A (zh) * | 2011-10-21 | 2012-02-22 | 福建星网锐捷网络有限公司 | 页面显示方法、装置和系统 |
CN102426485A (zh) * | 2011-11-11 | 2012-04-25 | 深圳Tcl新技术有限公司 | 电子终端的多国语言键盘使用方法及装置 |
CN103268566A (zh) * | 2013-05-23 | 2013-08-28 | 新疆卡尔罗媒体科技有限公司 | 一种社交网络平台系统及互动方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990976A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种网页脚本加载方法和装置 |
CN109190133A (zh) * | 2018-11-08 | 2019-01-11 | 深圳市友杰智新科技有限公司 | 一种翻译语言自动切换方法及装置 |
CN109302425A (zh) * | 2018-11-28 | 2019-02-01 | 河北省科学院应用数学研究所 | 身份认证方法及终端设备 |
CN109302425B (zh) * | 2018-11-28 | 2021-02-26 | 河北省科学院应用数学研究所 | 身份认证方法及终端设备 |
CN109582428A (zh) * | 2018-12-06 | 2019-04-05 | 广东浪潮大数据研究有限公司 | 一种调整bios页面显示语言的方法、装置和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103645913B (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9619304B2 (en) | Automatic connections between application components | |
WO2017143844A1 (zh) | 数据操作方法和数据管理服务器 | |
CN107526806A (zh) | 数据的转换方法及装置 | |
CN103678566A (zh) | 提供移动终端故障问题解决方案的方法、服务器和系统 | |
JP2015508190A (ja) | スクリプト・ファイル依存性およびロード時間の管理 | |
CN109324857B (zh) | 一种用户引导实现方法、装置和存储介质 | |
CN108829381A (zh) | 一种数据可视化方法及装置 | |
CN115934855A (zh) | 一种全链路字段级血缘解析方法、系统、设备及存储介质 | |
CN103645913B (zh) | J2ee系统中的语言加载方法及装置 | |
WO2019161620A1 (zh) | 应用依赖关系更新方法、终端、设备及存储介质 | |
CN113485927B (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN110795343B (zh) | 测试系统、测试方法和计算设备 | |
CN112685117A (zh) | 系统语言国际化维护方法、装置及计算机可读存储介质 | |
CN111737614B (zh) | 页面显示方法、装置、电子设备和存储介质 | |
CN110806967B (zh) | 一种单元测试方法和装置 | |
CN111124430A (zh) | 一种混合架构的微服务部署方法和装置 | |
CN112783494A (zh) | 一种骨架屏自动生成方法、应用程序页面更新方法及装置 | |
CN110223044A (zh) | 一种邮件推送方法、系统及电子设备和存储介质 | |
US20190012052A1 (en) | Configuration Constraints in Globalization of Features | |
CN114995859A (zh) | 页面热更新方法、装置、设备及存储介质 | |
US10713014B2 (en) | Multi-platform interface framework | |
WO2018176652A1 (zh) | 一种数据显示方法、装置及电子设备 | |
CN110717050A (zh) | 一种知识图谱数据库的访问方法及装置 | |
CN110275735A (zh) | 一种界面配置方法、装置、终端和存储介质 | |
CN112486482A (zh) | 一种页面展示方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171201 |