我对浏览器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。
答案 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>