javax.servlet.http.Cookie vs javax.ws.rs.core.Cookie

时间:2015-02-17 15:56:59

标签: cookies

作为Web开发的新手,我需要一些帮助来理解javax.servlet.http.Cookie和javax.ws.rs.core.Cookie之间的区别。我假设后者可以用来设置cookie进入休息服务的反应。但是我们还可以将初始Cookie对象设置为HTTPServletResponse吗?

2 个答案:

答案 0 :(得分:0)

这些是表示相同底层实体的对象,即RFC定义的HTTP cookie。两个"做"同样的事情,在HTTP响应中表示一个cookie头(请求cookie只是一个名称=值对,而响应cookie可以有几个额外的属性,如RFC中所述)。你使用一个与另一个的关系只是你编码的问题。如果您正在编写JAX-RS提供程序,那么JAX-RS apis将使用javax.ws.core.Cookie。如果您正在编写HttpServlet,那么您可以使用javax.servlet.http.Cookie。 JAX-RS实现还允许您使用上下文注入,以便您可以直接访问JAX-RS服务提供者中的HttpServlet对象

答案 1 :(得分:-1)

创建

javax.servlet.http.Cookie并使用addCookie方法放置在HTTP响应对象上。

相反,javax.ws.core.Cookie的描述为:

  

表示在请求中传输的HTTP cookie的值

...因此,您希望HTTP请求对象上的getCookies方法返回该类型Cookie的数组,但不会返回javax.servlet.http.Cookie的数组。显然某些javax.ws.core.Cookie使用了methods in the javax.ws.rs packages。因此,您将javax.ws.core.Cookie与jax-rs Web服务一起使用,将javax.servlet.http.Cookie与HttpServlet及其请求/响应对象一起使用。