2

我正在用 Java 编写一个小型网络服务器,HttpCore用于大多数 Http 请求/响应等。
现在我希望能够创建、存储和加载 cookie。我找不到任何东西,HttpCore而且我对其他库也不熟悉。是否有现有的库(最好有一个工作示例)来处理 cookie?

编辑:我看到我对 cookie 的使用有点困惑。我不完全确定它是如何工作的,但我想保持一个会话,并从 Web 服务器访问会话变量。我怎样才能做到这一点?如果浏览器保存了 cookie,它是否会将它们发送到服务器?我如何访问它们?

4

1 回答 1

2

服务器中的会话支持通常使用对象存储构建。一个简单的对象存储将是一个 Map 或一个 Set。此存储中的对象(在 Map 的情况下为值)与逻辑会话的概念具有一对一的映射关系,即对于服务器创建的每个会话,存储中都会有一个项目。

由商店管理的会话可以允许属性与它们相关联。此类属性的列表可能事先不知道,因此您需要另一张地图来实现此目的;键是属性名称,值是属性值。

就会话存储的管理而言,当对您的服务器进行 API 调用时,您需要在存储中创建一个新的会话。简而言之,如果 Web 应用程序决定它需要创建会话,则服务器的 API 必须提供必要的接口来执行此操作。单独创建会话对象是不够的;首次创建会话时,您还需要将会话 ID 作为 cookie 写出。API 必须允许在这种情况下编写适当的响应。您可能想查看 Servlet API,特别是 HttpServletRequest 和 HttpSession 类,以及用于此目的的 servlet 容器实现。

关于从请求中访问 c​​ookie 的主题,您需要解析传入的 HTTP 请求标头以检查浏览器发送的任何 cookie。浏览器和其他 HTTP 客户端Set-Cookie应为此目的使用请求标头。您需要确保只有在请求中提供了有效的 cookie 时,才能将会话对象返回给 Web 应用程序。

于 2011-06-11T16:53:51.553 回答