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



作为web开发的新手,我需要一些帮助来理解javax.servlet.http.Cookie和javax.ws.rs.core.Cookie之间的区别。我认为后者可以用于将Cookie设置为rest服务的响应。但是,我们是否也可以将初始Cookie对象设置为HTTPServlet响应?

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

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

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

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

…因此,您希望HTTP请求对象上的getCookies方法返回一个该类型Cookie的数组,但不是,它返回一个javax.servlet.HTTP.Cookie的数组。显然,javax.ws.core.Cookie被javax.ws.rs包中的一些方法使用。因此,您将javax.ws.core.Cookie与jax-rs web服务一起使用,将javax.servlet.http.Cookie与其请求/响应对象一起使用。

最新更新