国际化(i18n)的Servlet应用


国际化是应用在供不同地域人员使用时必不可免的一部分。有些直接使用属性文件进行国际化,有些会采用框架集成的方式;现将一些国际化方法记录下来,以便温习。

(本偏文章采用了网上的一些例子并结合个人见解写成)


一、国际化一般步骤

1、创建属性文件,即各个国家对应的语言文件;由基名(beanname)和语言(例如zh-CN,en 等)属性组成。

例如:

msg.properties

msg_zh-CN.properties

msg_en.properties

2、使用解析类(可以是框架自带的解析类,或者其他支持properties文件的解析API等;例如spring框架中的ResourcBundleMessageSource类,JDK自带的java.util.ResourceBundle类,jquery-i18n等包)获取属性文件,根据不同的语言设置其相应的显示。


二、i18n在servlet中使用

1、创建java.util.ResourceBundle对象和locale对象

国际化(i18n)的Servlet应用

2、为locale对象指定语言,一般从浏览器获取赋值;为bundle对象指定属性文件的路径+基名(即 path.beanname)和locale对象。

3、bundle对象此时即为一个属性文件生成的对象,通过getString(string key)方法获取其键值对应的值完成数据的显示操作。


优点:1、任何可导入java类的页面均可使用。


缺点:1、servlet开发方式不利于页面优化。

2、每个页面都需创建Locale和ResourceBundle对象,系统开销较大。

3、现在提倡MVC开发方式,servlet方式已被淘汰。