如何在Java Web应用程序中设置Locale?

时间:2015-01-13 10:20:49

标签: java servlets locale setlocale

我从UI传递语言代码和国家/地区代码以创建Locale对象。如何在HttpServletRequest中设置此Locale对象,以便使用HttpServletRequest.getLocale()在Web应用程序的任何位置使用此Locale对象?

2 个答案:

答案 0 :(得分:3)

HttpServletRequest.getLocale()返回的值由Servlet容器自动设置。来自Javadocs:

  

返回客户端将接受内容的首选语言环境,   基于Accept-Language标头。如果客户请求没有   提供Accept-Language标头,此方法返回默认值   服务器的语言环境。

如果您有一个Web应用程序,最好不要在您的应用程序中询问国家/地区代码等,而是依赖浏览器首选项/设置(即由浏览器本身的每个用户设置,并适用于他访问的所有网页)。它是通过上述机制传达并由HttpServletRequest.getLocale()返回的值。

答案 1 :(得分:0)

假设这是一个允许用户选择应用程序语言的功能:

请求是一个非常短暂的对象。如果您想要设置一次,然后在多个请求中保持该值,那么会话就更好了。如果您正在处理无状态应用程序,则客户端必须将其与每个请求一起传递。