从零开始理解Jetty:轻量级Java服务器的入门指南

目录
一、Jetty是什么?先看一个生活比喻
二、5分钟快速入门:搭建你的第一个Jetty服务
步骤1:Maven依赖配置
步骤2:编写简易Servlet(厨房厨师)
步骤3:组装服务器(餐厅开业准备)
三、核心组件拆解:Jetty的四大金刚
四、为什么选择Jetty?对比传统服务器
优势场景:
适用情况举例:
五、新手常见问题解答
一、Jetty是什么?先看一个生活比喻
假设你要开一家餐馆(Web应用),可以选择两种经营模式:
传统大饭店模式(如Tomcat): 有固定的前厅(HTTP连接器)、标准化厨房(Servlet容器)、甚至自带停车场(JSP支持)。功能全面但体积较大。
定制化私房菜模式(即Jetty): 你可以自由组合用餐区(Connector)、厨房设备(Handler)、甚至选择只做外卖(嵌入式部署)。特点是灵活轻便,按需配置。
Jetty的本质:一个模块化的Java HTTP服务器和Servlet容器,既能独立运行,也能轻松嵌入应用程序。
二、5分钟快速入门:搭建你的第一个Jetty服务
步骤1:Maven依赖配置
步骤2:编写简易Servlet(厨房厨师)
public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) { resp.getWriter().print("🍜 Jetty服务已启动!"); } }
步骤3:组装服务器(餐厅开业准备)
public class JettyStarter {
public static void main(String[] args) throws Exception {
Server server = new Server(8080); // 在8080端口营业
// 配置请求处理流水线
ServletContextHandler handler = new ServletContextHandler();
handler.addServlet(HelloServlet.class, "/hello");
server.setHandler(handler);
server.start();
server.join(); // 保持营业状态
}
}
运行后访问 http://localhost:8080/hello 就能看到欢迎信息!
三、核心组件拆解:Jetty的四大金刚
组件类比作用说明常用配置示例Server餐厅总经理整个服务器的生命周期管理new Server(端口号)Connector前台接待员处理网络连接和协议解析ServerConnector配置HTTPSHandler部门经理请求路由和业务逻辑分发ResourceHandler处理静态资源Servlet后厨工作人员具体处理HTTP请求的业务逻辑自定义doGet/doPost方法
组件协作流程图:
客户端 → Connector接收 → Handler路由 → Servlet处理 → 返回响应
四、为什么选择Jetty?对比传统服务器
优势场景:
嵌入式开发:像乐高一样嵌入Spring Boot等框架
new SpringApplicationBuilder()
.sources(MyApp.class)
.web(WebApplicationType.NONE) // 禁用默认Tomcat
.run(args);
快速启停:启动速度比传统服务器快30%-50%
按需加载:最小化部署只需约2MB内存
适用情况举例:
需要频繁重启的微服务IoT设备上的边缘计算节点需要WebSocket支持的实时聊天应用
五、新手常见问题解答
Q:Jetty和Tomcat怎么选? A:就像选择咖啡机——Tomcat是功能齐全的全自动咖啡机,Jetty是支持DIY的胶囊咖啡机。需要快速标准化选前者,追求定制化选后者。
Q:Jetty如何处理高并发? Jetty使用NIO(非阻塞IO)模型,就像餐厅使用叫号系统:
传统BIO模式 → 每个顾客一个服务员全程服务(资源浪费)
Jetty的NIO → 一个服务员管理多个顾客的就餐进度(高效复用)