国际化(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对象
2、为locale对象指定语言,一般从浏览器获取赋值;为bundle对象指定属性文件的路径+基名(即 path.beanname)和locale对象。
3、bundle对象此时即为一个属性文件生成的对象,通过getString(string key)方法获取其键值对应的值完成数据的显示操作。
优点:1、任何可导入java类的页面均可使用。
缺点:1、servlet开发方式不利于页面优化。
2、每个页面都需创建Locale和ResourceBundle对象,系统开销较大。
3、现在提倡MVC开发方式,servlet方式已被淘汰。