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 世界!