获取浏览器区域设置

时间:2014-06-02 10:09:38

标签: java servlets

我对浏览器Locale有疑问。在pricipal中,request.getLocale从用户的操作系统中检索语言环境。我想检索独立于用户操作系统的浏览器区域设置。 该网站具有多种语言(德语,意大利语,英语),因此用户可以手动切换语言。 在html页面中,有元元素显示差异。

<meta http-equiv="content-language" content="de" />

&#34;德&#34;由于用户点击,将更改为en或其他语言。

问题是是否有办法在java servlet中修复此信息。

更新: 在我的LogoutServlet doPost方法中,我有一个logout方法,它应该从浏览器的html页面中检索当前语言。

String locale =request.getLocale().getDisplayLanguage();

根据内容语言,它不会更改为Fr或IT。

2 个答案:

答案 0 :(得分:0)

据我所知,浏览器没有独立于操作系统的区域设置。

您为用户提供了手动选择语言的方法(太棒了!)。要了解他们选择的语言,您需要做一些事情将该信息发送回您的服务器。 cookie可能是最简单的方法,因为它会伴随每个请求。 (尽管如此,保持它很小。出于同样的原因。)

答案 1 :(得分:0)

以下是可以解决问题的一部分的答案: http://www.coderanch.com/t/442889/JSP/java/Reading-META-tag-Servlet

您需要使用clientside脚本收集元标记的数据并将它们发送到您的servlet:

<script type="text/javascript">  

function metaKeywords() {  

metaCollection = document.getElementsByTagName('meta');  
alert('');  
for (i=0;i<metaCollection.length;i++) {  
var nameAttribute = metaCollection[i].name.search(/foo/);  

if (nameAttribute!= -1) {  
alert(metaCollection[i].content);  
}  
}  
}  
>
</script>