【问题标题】:Implementing HttpSession in Java Se在 Java Se 中实现 HttpSession
【发布时间】:2012-12-04 02:07:03
【问题描述】:

我使用 com.sun.net.httpserver.HttpServer 作为带有 JAVA SE 的 HTTP 服务器。规范可以在这里找到:http://docs.oracle.com/javase/6/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/package-summary.html

我需要在我的会话中保留一些基本数据,因为这里没有 HttpSession 对象,所以我需要创建自己的。但我需要让它尽可能简单(一如既往)。

任何提示都将不胜感激,即使是简短的提示。 我的源代码在:https://github.com/fidelio-coder/HttpServer

【问题讨论】:

  • 只是出于好奇,为什么不能只使用嵌入式 Tomcat 或 Jetty 并使用完整的 Servlet 规范?它也适用于 Java SE。
  • 出于教育目的,我们不能使用任何第三方。也许是为了展示我们对java核心的理解?!
  • 好的。在这种情况下,您必须了解 servlet 如何处理会话、搜索 JSESSIONID cookie 和 URL 重写。顺便说一句,HttpServer 不是标准的 Java。

标签: java http session java-server


【解决方案1】:

如果您使用 JSF 做某事,您会发现变量可以在不同的范围内:应用程序、会话、请求和自定义(您自己的映射)。因此,对于简洁的设计,会话变量属于更通用的类,而不仅仅是 HttpSession。

如前所述,使用 sun 类可能会导致一些陷阱,尤其是从 Windows 下的本地开发切换到 Linux 下的部署(通常使用 OpenJDK)时。

除了 API 之外,关于 HttpSession 不能说太多了。

虽然您想自己做所有事情,但我不得不想到Apache Shiro,它提供安全性、会话等。本地 Java SE 应用程序和 Java EE 服务器之间的会话!可能值得研究他们的想法/API。

【讨论】:

  • 非常感谢您的提示。不幸的是,情况就是这样!我猜我遇到了不寻常的情况。
猜你喜欢
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 2011-03-26
  • 2023-04-06
  • 2010-12-25
  • 1970-01-01
  • 2011-07-05
  • 1970-01-01
相关资源
最近更新 更多