实现国际化
由于要实现中英日文的显示,采取以下步骤:
开发和编译代码时指定字符集为UTF-8。Eclipse可以在项目属性中设置。 使用过滤器,如果所有请求都经过一个Servlet控制分配器,那么使用Servlet的filter执行语句,将所有来自浏览器的请求(request)转换为UTF-8,因为浏览器发过来的请求包根据浏览器所在的操作系统编码,可能是各种形式编码。request.setCharacterEncoding("UTF-8")。需要配置web.xml 激活该Filter。在JSP头部声明:
<%@ page contentType="text/html;charset= UTF-8" %>。
在Jsp的html代码中,声明UTF-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
设定数据库连接方式是UTF-8。例如连接MYSQL时配置URL如下:
jdbc:mysql://localhost:3306/feedback_db?useUnicode=true&characterEncoding=UTF-8
其他和外界交互时能够设定编码时就设定UTF-8,例如读取文件,操作XML等。
不同时区时间显示
由于客户端可能处于不同的时区,因此应该显示不同服务器时间。由于与客户端有关,因此需利用一段javaScript代码,从客户端获取其所在的时区偏移量。该偏移量是针对GMT时间而言的,也就是格林威治时间,以分钟为单位。
function getTimezone()
{
var d = new Date();
document[getNetuiTagName("loginForm", this)][getNetuiTagName("timezone", this)].value=
d.getTimezoneOffset();
}
获取之后将他传回服务器端并保存在session中。显示时间时根据这个偏移量来计算显示的时间。