如何使用 Java 在我的网络 (localhost) 中托管网站

How to host a website in my network (localhost) using Java

所以我正在开发一个程序来在用户的专用网络(即本地主机)中托管 HTML 文件,但我不知道如何在 Java 中实现它。我对 Java EE 知之甚少。如果这在其他编程语言(最好是 C 或 Python)中更容易,请强调它。

我试着查看以前的帖子,但他们使用 Java 套接字,这里有一个方便的教程:https://docs.oracle.com/javase/tutorial/networking/sockets/

但我觉得使用 Tomcat 和 Glassfish 等服务器可以更轻松地完成此操作(也请详细说明)。

要在您的网络上托管网站,您必须使用套接字。像这样:

  1. 在端口 8080 上打开一个套接字(当您不是 root 用户时,http 的默认协议)
  2. 创建一个可以读取 html 文件和 return 文件中包含的字符串的函数(示例 index.html)
  3. 制作一个发送带有 html 内容的 HTTP 请求的函数,请忘记 content-length
  4. 在你的主程序中创建一个循环,迭代新客户并向他发送 html

在Java或C中总是一样的方法,我请你看看这个教程在C中做: https://www.binarytides.com/server-client-example-c-sockets-linux/

您还可以阅读以下内容: https://docs.oracle.com/cd/E21764_01/core.1111/e10103/intro.htm#ASCON112

如果您可以完成所有 4 个步骤,那么您将了解中间件的工作原理,然后您就可以使用 TomCat,等等...始终从基础开始。

如果您想使用 Java 传送静态内容,预写的 HTML 文件,可以使用 web containers 中的任何一个。 Apache Tomcat 和 Eclipse Jetty 是最简单的两个。

如果您想使用Java动态创建内容,请先了解Jakarta Servlet(以前的Java Servlet)技术。

许多 Web 容器产品都支持 Servlet。其中包括 Tomcat、Jetty、Glassfish、Payara、WildFly、JBoss、OpenLiberty 等。

从那里,您可能想要利用其他库和框架。此类库和框架中最受欢迎的两个集合是 Jakarta EE 和 Spring.

您不需要实现套接字。 Web 浏览器和 Web 服务器自动处理所有网络。

WebSockets is something else. If really interested in that, see the Atmosphere 框架。