【发布时间】:2014-05-26 12:04:37
【问题描述】:
这就是我的 Servlet 中的 doGet() 方法:
protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
throws ServletException, IOException {
httpServletResponse.setLocale(new Locale("tr", "TR"));
System.out.println("Cookies being printed:");
for(Cookie cookie:httpServletRequest.getCookies()){
System.out.println(cookie.getName());
System.out.println(cookie.getValue());
}
}
第一次打doGet方法:
Cookies being printed:
locale
en
然后我刷新页面以再次调用它:
Cookies being printed:
JSESSIONID
A00EB65138C896FC282CE11EB20D1DD7
locale
en
这行好像没有效果:
httpServletResponse.setLocale(new Locale("tr", "TR"));
我做错了什么?为什么我得到一个带有 locale=en 的 cookie?
这是一个非常简单的网络应用程序,我不会在应用程序的任何其他部分设置任何类型的 cookie 或任何内容。这已经是欢迎文件。
【问题讨论】:
-
我认为您应该将语言环境设置为会话,否则它将在您的下一个请求中丢失。
-
如何将区域设置设置为会话?
-
@korayTugay:您能说明一下您是如何设置 Cookie 的吗?
-
@Ravinder 我没有设置任何 cookie。只有一个 Servlet 就是这个,我只需启动应用程序并调用这个 servlet 的 url。这是我所有的代码。
-
@KorayTugay:您的意思是说设置区域设置会导致创建 cookie?
标签: java jakarta-ee servlets cookies