代码之家  ›  专栏  ›  技术社区  ›  Kevin Boyd

一个JAVA HTTP服务器

  •  4
  • Kevin Boyd  · 技术社区  · 14 年前

    我想在本地实现一个JavaHTTP服务器,我的意思是服务器计算机在我的控制中。我希望不超过20个客户向它发送请求。 我想知道怎么做:

    1. 我应该使用J2EE servlet容器吗,比如ApacheTomcat?
    2. 我可以使用J2SE类并使用它们来构建它吗?
    3. 是否有现有的替代方案?

    你的经验有什么建议?

    10 回复  |  直到 11 年前
        1
  •  7
  •   skaffman    14 年前

    有一个 simple HTTP server 嵌入在Sun 1.6 JRE中。它不是JavaEE或servlet兼容的,它非常轻量,但它可能足够满足您的需求。如果这是你所需要的,就不需要下载任何第三方资料。

    很奇怪的是,爪哇人都是自己出去的, here .

        2
  •  7
  •   Kevin    14 年前

    Embed Jetty 在您的应用程序中。除了性能相当好之外,使用和配置都非常简单。

        3
  •  4
  •   user359996    11 年前

    你有很多选择,至少 Jetty , Grizzly TTiny .

    我强烈建议不要写你自己的网络服务器,除非你有时间去消磨时间,想花时间写一些你已经可以免费使用的东西。

        4
  •  3
  •   Pascal Thivent    14 年前

    认真地说,重用现有的解决方案。你为什么还想自己滚?

    现在,1。我不明白你的问题是关于嵌入一个容器。2。你几次提到长投票。所以我建议使用Glassfish v3/grizzly(因为有很多样品,例如,看看 Dead Simple Comet Example on Glassfish v3 / Grizzly )

    如果不希望依赖容器实现Comet支持的方式,请使用 atmosphere 以及网站上提到的任何容器:

    大气是一个基于POJO的框架,使用 Inversion of Control (IoC) 推/推 Comet 向群众!最后,可以在任何基于Java的Web服务器上运行的框架,包括 Google App Engine , Tomcat , Jetty , GlassFish , Weblogic ,请 Grizzly ,请 JBossWeb and JBoss ,请 Resin 等等,无需等待servlet 3.0异步支持,也无需了解所有这些容器如何实现Comet支持。

    如果这不是一个问题,只需坚持建议的选项(Glassfish v3/Grizzly)。

    为了在Comet服务器实现之间进行具体的和最近的比较,请签出这个令人敬畏的 Comet Maturity comparison grid view (资料来源: Comet Gazing: Maturity )它可能会帮助你做出最后的选择…或不:

        5
  •  2
  •   Roland Bouman    14 年前

    我想最大的问题是:你为什么要建造这个?

    如果是为了个人发展,我会坚持使用JDK附带的任何标准库,并在此基础上进行构建。

    另一方面,如果您有一个需要专用HTTP服务器的特定应用程序,我将尝试使用一个开放源代码servlet容器,例如 Jetty 或者是Tomcat,在这些基础上发展。

        6
  •  2
  •   Clint    14 年前

    也许可以查看26个开源Web服务器的列表 http://java-source.net/open-source/web-servers .

    http://java.sun.com/developer/technicalArticles/Networking/Webserver/WebServercode.html 是实现多线程Web服务器的单个文件中的实际代码。对于您的需求,比如它们,这应该足够了。

    http://java.sun.com/developer/technicalArticles/Networking/Webserver/ 是对代码的分析。

        7
  •  1
  •   Rajat    14 年前

    如果您要编写自己的httpserver,则必须实现HTTP协议的所有方法。Tomcat可以很容易地在本地使用。

        8
  •  1
  •   Andreas Dolk    14 年前

    它是为了实践,乐趣,实现特殊的要求,还是你为什么不嵌入一个 existing solution ?

        9
  •  1
  •   Kaleb Brasee    14 年前

    您真的想构建一个直接处理协议的HTTP服务器,还是只想编写Web应用程序?如果你所关心的只是编写Web应用程序,那么只需使用Tomcat、Jetty、Glassfish或其他服务器——这将为你节省大量的工作。

    如果您真的对从零开始编写自己的服务器感兴趣,那么最好的方法就是使用JavaSE,而不使用任何现有的服务器技术。