Duv*_*eit 4 java cookies servlets
我需要在一个响应中创建几个持久性 cookie.
这样做
response.addCookie(new Cookie("1","1"));
response.addCookie(new Cookie("2","2"));
Run Code Online (Sandbox Code Playgroud)
会创建一个带有2个"Set-Cookie"标题的响应.但他们不会坚持不懈.我需要"过期"日期.
expires=Wed, 07-Nov-2012 14:52:08 GMT
Run Code Online (Sandbox Code Playgroud)
看看javax.servlet.http.Cookie如何不支持"expires",我以前用过
String cookieString="cookieName=content;Path=/;expires=Wed, 07-Nov-2012 14:52:08 GMT;"
response.setHeader("Set-Cookie", cookieString);
Run Code Online (Sandbox Code Playgroud)
哪个像魅力一样,但第二次使用response.setHeader("Set-Cookie",newCookie)会覆盖第一个.
那么,问题是,是否有任何方法可以在响应中添加几个相同的命名标题?或者,如果还有其他正确的方法吗?
我见过使用逗号分隔cookie的建议,但我的经验是浏览器只能读取第一个cookie.
Bal*_*usC 13
你需要addHeader()
而不是setHeader()
.前者添加标题,而后者设置(因此覆盖任何旧标题)标题.
response.addHeader("Set-Cookie", cookieString1);
response.addHeader("Set-Cookie", cookieString2);
Run Code Online (Sandbox Code Playgroud)
然而,正确的方法是使用类的setMaxAge()
方法Cookie
(以秒为单位的过期时间)并使用addCookie()
通常的方法.
Cookie cookie1 = new Cookie("1","1");
cookie1.setMaxAge(1209600);
response.addCookie(cookie1);
Cookie cookie2 = new Cookie("2","2");
cookie2.setMaxAge(1209600);
response.addCookie(cookie2);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18911 次 |
最近记录: |