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

发布于:2025-05-18 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

一、Jetty是什么?先看一个生活比喻

二、5分钟快速入门:搭建你的第一个Jetty服务

步骤1:Maven依赖配置

步骤2:编写简易Servlet(厨房厨师)

步骤3:组装服务器(餐厅开业准备)

三、核心组件拆解:Jetty的四大金刚

四、为什么选择Jetty?对比传统服务器

优势场景:

适用情况举例:

五、新手常见问题解答


一、Jetty是什么?先看一个生活比喻

假设你要开一家餐馆(Web应用),可以选择两种经营模式:

  1. ​传统大饭店模式​​(如Tomcat):
    有固定的前厅(HTTP连接器)、标准化厨房(Servlet容器)、甚至自带停车场(JSP支持)。功能全面但体积较大。

  2. ​定制化私房菜模式​​(即Jetty):
    你可以自由组合用餐区(Connector)、厨房设备(Handler)、甚至选择只做外卖(嵌入式部署)。特点是灵活轻便,按需配置。

​Jetty的本质​​:一个模块化的Java HTTP服务器和Servlet容器,既能独立运行,也能轻松嵌入应用程序。

二、5分钟快速入门:搭建你的第一个Jetty服务

步骤1:Maven依赖配置

<dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-server</artifactId>
    <version>11.0.15</version>
</dependency>

步骤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配置HTTPS
​Handler​ 部门经理 请求路由和业务逻辑分发 ResourceHandler处理静态资源
​Servlet​ 后厨工作人员 具体处理HTTP请求的业务逻辑 自定义doGet/doPost方法

组件协作流程图:

客户端 → Connector接收 → Handler路由 → Servlet处理 → 返回响应

四、为什么选择Jetty?对比传统服务器

优势场景:

  1. ​嵌入式开发​​:像乐高一样嵌入Spring Boot等框架

    new SpringApplicationBuilder()
        .sources(MyApp.class)
        .web(WebApplicationType.NONE) // 禁用默认Tomcat
        .run(args);
  2. ​快速启停​​:启动速度比传统服务器快30%-50%

  3. ​按需加载​​:最小化部署只需约2MB内存

适用情况举例:

  • 需要频繁重启的微服务
  • IoT设备上的边缘计算节点
  • 需要WebSocket支持的实时聊天应用

五、新手常见问题解答

​Q:Jetty和Tomcat怎么选?​
A:就像选择咖啡机——Tomcat是功能齐全的全自动咖啡机,Jetty是支持DIY的胶囊咖啡机。需要快速标准化选前者,追求定制化选后者。

​Q:Jetty如何处理高并发?​
Jetty使用NIO(非阻塞IO)模型,就像餐厅使用叫号系统:

传统BIO模式 → 每个顾客一个服务员全程服务(资源浪费)

Jetty的NIO → 一个服务员管理多个顾客的就餐进度(高效复用)


网站公告

今日签到

点亮在社区的每一天
去签到