Java Jetty 如何使用:搭建简单的 Web 服务器

Jetty 是一个开源的 servlet 容器和 Web 服务器,它以轻量级、高性能、灵活性著称。本文将教您如何使用 Jetty 快速搭建一个简单的 Web 服务器,并通过一个示例解决一个实际的问题:在指定路径下提供静态文件服务。

环境准备

在开始之前,请确保您的计算机上已安装以下软件:

  • JDK 8 或更高版本
  • Maven(用于管理依赖)

项目结构

首先,创建一个新的 Maven 项目,项目结构如下:

my-jetty-app
│
├── pom.xml
└── src
    └── main
        └── java
            └── com
                └── example
                    └── JettyServer.java

Maven 依赖

编辑 pom.xml,添加 Jetty 的相关依赖项:

<project xmlns="
         xmlns:xsi="
         xsi:schemaLocation=" 
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>my-jetty-app</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>11.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
            <version>11.0.0</version>
        </dependency>
    </dependencies>
</project>

编写 Jetty 服务器代码

JettyServer.java 中,编写如下代码:

package com.example;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.DefaultServlet;

public class JettyServer {
    public static void main(String[] args) throws Exception {
        // 创建一个 Jetty 服务器实例,定义端口为 8080
        Server server = new Server(8080);

        // 创建一个 ServletContextHandler,用于托管静态文件
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        server.setHandler(context);

        // 设置静态文件目录,访问根路径时提供这些文件
        context.setResourceBase("src/main/resources/static");
        context.addServlet(DefaultServlet.class, "/");

        // 启动服务器
        server.start();
        System.out.println("Server started on http://localhost:8080");
        server.join();
    }
}

src/main/resources/static 目录中,您可以添加任何静态文件,比如 HTML、CSS、JavaScript 等。

启动应用

在命令行中,导航到项目根目录并执行以下命令:

mvn clean package
java -cp target/my-jetty-app-1.0-SNAPSHOT.jar com.example.JettyServer

此时,服务器将在 http://localhost:8080 启动。您可以在浏览器中访问该链接,查看您定义的静态文件。

状态图示例

下面是一个简单的状态图,展示了 Jetty 服务器的状态转移。

stateDiagram
    [*] --> Stopped
    Stopped --> Starting
    Starting --> Running
    Running --> Stopping
    Stopping --> Stopped

甘特图示例

最后,用甘特图展示 Jetty 服务器的工作流程:

gantt
    title Jetty Server Workflow
    dateFormat  YYYY-MM-DD
    section Server Setup
    Create Project       :a1, 2023-10-01, 1d
    Add Dependencies     :a2, after a1, 2d
    Implement Server Code: a3, after a2, 2d
    section Server Running
    Start Server         :a4, 2023-10-05, 1d
    Access Web Page      :a5, after a4, 1d

结论

本文介绍了如何使用 Jetty 搭建一个基本的 Web 服务器。通过简单的步骤,您可以利用 Jetty 为您的应用程序提供静态文件服务。这只是 Jetty 的一个基础用法,您可以根据需要进行扩展,如集成更多的功能或创建 RESTful API。希望这篇文章能帮助您入门 Jetty 世界!