zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

【项目实战】轻量级的Web服务器 —— Undertow介绍

服务器项目Web 介绍 实战 轻量级
2023-09-14 09:04:55 时间

一、Undertow介绍 是什么?

Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器

Undertow是一个轻量级的Web服务器,旨在具有灵活性、可扩展性和易用性。它是Spring Boot应用程序的默认Web服务器,并被许多其他Java Web框架使用。

二、 Undertow特点

轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 Web 应用可以小于 10MB 内存Servlet3.1 支持:它提供了对 Servlet3.1 的支持WebSocket 支持:对 Web Socket 完全支持,用以满足 Web 应用巨大数量的客户端嵌套性:它不需要容器,只需通过 API 即可快速搭建 Web 服务器

三、Undertow如何使用?

要在Spring Boot应用程序中使用Undertow,您需要将以下依赖项添加到pom.xml文件中:

<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-core</artifactId>
    <version>2.2.5.Final</version>
</dependency>

添加依赖项后,您可以创建一个Undertow服务器,方法是创建Undertow类的实例,并传入一个Handler对象来处理传入的请求。例如:

public class MyApp {
    public static void main(String[] args) {
        Undertow server = Undertow.builder()
            .addHttpListener(8080, "localhost")
            .setHandler(new MyHandler())
            .build();
        server.start();
    }
}

public class MyHandler implements HttpHandler {
    @Override
    public void handleRequest(HttpServerExchange exchange) throws Exception {
        // 处理请求
    }
}

在这个例子中,我们创建了一个Undertow服务器,它监听8080端口,并使用MyHandler类处理请求。

四、Undertow内置的处理程序

Undertow提供了许多内置的处理程序,可以用于处理常见任务,例如提供静态文件、处理HTTP身份验证等。您可以在Undertow文档中找到有关这些处理程序的更多信息。

要使用这些处理程序,您可以创建Undertow类的新实例,并将所需的处理程序作为参数传递给setHandler方法。例如,要提供静态文件服务,您可以使用ResourceHandler类:

Undertow server = Undertow.builder()
    .addHttpListener(8080, "localhost")
    .setHandler(new ResourceHandler(
        new ClassPathResourceManager(MyClass.class.getClassLoader(), "/static")
    ))
    .build();
server.start();

在这个例子中,我们创建了一个Undertow服务器,它监听8080端口,并提供位于类路径的/static目录中的静态文件服务。

五、参考文章

为什么很多 SpringBoot 开发者放弃了 Tomcat,选择了 Undertow?

https://www.baidu.com/link?url=9MAnsKP85Mqra1sHLUEn-IvKUhkdvQQF5K6gOJ9BCfpmHqRMzLgtKNxa7lu3LBrs2GxTYpHq8ckNtlOS6dPvqq&wd=&eqid=8844fec6000f601700000006622aebb8