【发布时间】:2011-01-26 08:58:41
【问题描述】:
是否可以从 httpsession 对象 (javax.servlet.http.HttpSession) 派生首选语言? 可以从 servletrequest 中获取它,但我没有。 感谢您的任何想法。 斯文
【问题讨论】:
标签: java browser locale httpsession
是否可以从 httpsession 对象 (javax.servlet.http.HttpSession) 派生首选语言? 可以从 servletrequest 中获取它,但我没有。 感谢您的任何想法。 斯文
【问题讨论】:
标签: java browser locale httpsession
正如its Javadoc 所示,没有任何方法可以做到这一点。
要么直接从请求中获取(首选),要么自己将其存储为会话的属性。
【讨论】:
通常我们不能从一个 HttpSession 中获取相关的 httpRequest 对象。但是,有一种解决方法。
你可以创建一个过滤器,在过滤器中,你拥有一切,httpSession、httpRequest 等。然后创建一个 ThreadLocal 变量来存储 HttpRequest 对象。或者只是在以后的方法中存储一些您需要的请求属性。
你的方法应该可以得到ThreadLocal的值。 HttpRequest,或语言设置或您之前存储的任何内容。
不知道这是否回答了你的问题。
【讨论】:
用户的首选语言环境可用作请求标头(“Accept-Language”)。它由用户的浏览器根据其偏好自动填写。 然后,您可以将此信息存储在用户的会话中,并在适当的时候检索它。
【讨论】: