在Ubuntu上实现JSP国际化

作者:技术拾光时间:2026-07-06 08:05:05浏览:391

在Ubuntu系统上实现JSP应用的国际化功能,需要安装Java开发工具包和Tomcat服务器,并设置Tomcat的URI编码为UTF-8以防乱码。然后按照不同语言创建各自的messages.properties资源文件,最后在JSP页面中引入JSTL的fmt标签库,该标签能自动检测浏览器语言并显示对应的文本内容。

在Ubuntu上做JSP国际化,其实并没有想象中那么复杂。整个过程无非是配置好环境、准备好资源文件,再在JSP页面里引用一下。下面就把具体步骤拆开来聊聊。

在Ubuntu上实现JSP国际化

  1. 安装Java和Tomcat

这一步是基础,没什么可讨价还价的。先确认你的Ubuntu上有没有Java和Tomcat,如果没有,直接跑下面这两条命令就行:

sudo apt update
sudo apt install openjdk-11-jdk
sudo apt install tomcat9

装完之后,建议顺手检查一下版本,确保没问题再往下走。

  1. 配置Tomcat的URI编码

这个细节很容易被忽略,但如果不做,后面国际化可能出现乱码。打开/etc/tomcat9/server.xml,找到标签,在里面加上URIEncoding="UTF-8"属性。就像这样:


connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />

配置完别忘了重启Tomcat才能生效。

  1. 创建国际化资源文件

这才是国际化的核心。在你的Web应用目录下,先建一个WEB-INF/classes文件夹(如果还没有的话)。然后在这个文件夹里,按照语言拆分子目录,比如en、zh、ja等等。每个子目录里放一个messages.properties文件,里面用键值对定义翻译文本。

举个,英文资源文件(en/messages.properties):

greeting=Hello
welcome=Welcome to our website

中文资源文件(zh/messages.properties):

greeting=你好
welcome=欢迎访问我们的网站

注意文件编码必须用UTF-8,否则中文会变成乱码。可以用native2ascii工具转换一下,或者直接在IDE里设置。

  1. 在JSP页面中引用资源

这一步比较关键,需要引入JSTL的fmt标签库,然后通过设置当前区域,再用获取对应的文本。下面是一个完整的JSP示例:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ page import="java.util.Locale" %>
<%
Locale locale = request.getLocale();
if (locale.getLanguage().equals("zh")) {
locale = new Locale("zh", "CN");
} else {
locale = new Locale("en", "US");
}
request.getSession().setAttribute(Locale.class.getName(), locale);
%>



这里通过request.getLocale()拿到浏览器的语言偏好,然后手动指定对应的Locale对象。当然,更优雅的做法是写一个过滤器来自动处理区域切换,但对于入门来说,先这样跑通再说。

  1. 部署并验证

把整个Web应用打包或直接丢到Tomcat的webapps目录下,启动Tomcat,然后用浏览器访问。如果一切正常,你会看到页面文字根据浏览器语言自动切换——英文浏览器显示英文,中文浏览器显示中文。试试把浏览器的首选语言改成其他语言,页面也会跟着变。

当然,这只是一个基础版本的国际化实现。实际项目中你可能需要处理复数形式、带占位符的参数化文本,或者用过滤器全局管理区域设置。但不管怎么扩展,核心思路都是上面这几步:建好资源文件、在JSP中用fmt标签读取。搞懂了这些,后面再深入就轻松多了。