Java 如何使用ServletAPI 2.5创建HttpOnly cookies?

Java 如何使用ServletAPI 2.5创建HttpOnly cookies?,java,servlets,cookies,servlet-2.5,Java,Servlets,Cookies,Servlet 2.5,我正在使用一个在Tomcat6上运行的使用ServletAPIv2.5的web应用程序,我需要向客户端发送HttpOnly cookies。我所说的不是由servlet容器生成的会话cookie(本文详细介绍了),而是使用response.addCookie()将自定义cookie添加到响应中 v2.5中不存在Cookie#setHttpOnly()方法,因此我必须自己构建HTTP头并添加HttpOnly标记。有没有一种简单的方法可以做到这一点,而不必从头开始滚动我自己的实现?也许您需要实现一个

我正在使用一个在Tomcat6上运行的使用ServletAPIv2.5的web应用程序,我需要向客户端发送HttpOnly cookies。我所说的不是由servlet容器生成的会话cookie(本文详细介绍了),而是使用
response.addCookie()
将自定义cookie添加到响应中


v2.5中不存在
Cookie#setHttpOnly()
方法,因此我必须自己构建HTTP头并添加
HttpOnly
标记。有没有一种简单的方法可以做到这一点,而不必从头开始滚动我自己的实现?

也许您需要实现一个
org.apache.catalina.Valve
(其原理与Servlet过滤器非常相似)并将cookie强制转换为org.apache.tomcat.util.http.ServerCookie,这样您就可以访问底层细节,以便将“HttpOnly”粘贴在其中


我很困惑。您链接到的问题的答案中的一个描述了
response.setHeader(“Set Cookie”,“name=value;HttpOnly”)用于不需要服务器会话cookie的简单用例。为什么这对你不起作用?@Arjan我正在寻找一种解决方案,可以处理字符编码、过期日期以及RFC中定义的所有其他内容。ServletAPI中还有什么可以帮助我的吗?(如果答案是真的,我愿意接受“没有”作为答案。)啊,我的错,当然不仅仅是
name=value
。你检查了
Cookie#toString()
给你什么了吗?@Arjan是的,Cookie#getValue()只返回Cookie的名称-值对的(字符串)值部分。(对不起,编辑了我的评论,使之成为
#toString()
——但我猜你在那里也运气不好。)