首页 Java java教程 如何用 Java 轻松创建基本的 HTTP 服务器?

如何用 Java 轻松创建基本的 HTTP 服务器?

Dec 17, 2024 pm 10:33 PM

How Can I Easily Create a Basic HTTP Server in Java?

使用 Java SE API 在 Java 中创建基本 HTTP 服务器

问题:

开发人员经常面临在 Java 中创建 HTTP 服务器而无需手动解析请求和格式化响应的挑战。现有的解决方案涉及繁琐且容易出错的代码,很容易出现错误且错误处理不足。

答案:Java 中的内置 HTTP Server

自 Java SE 以来6、Oracle JRE 包含一个内置的 HTTP 服务器,在 Java 9 中称为 jdk.httpserver 模块。该服务器简化了创建基本 HTTP 的过程服务器,消除了手动请求解析和响应格式化的需要。

示例:

以下是使用内置 HTTP 服务器的简单示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

import com.sun.net.httpserver.HttpExchange;

import com.sun.net.httpserver.HttpHandler;

import com.sun.net.httpserver.HttpServer;

 

public class SimpleHttpServer {

 

    public static void main(String[] args) throws Exception {

        HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);

        server.createContext("/test", new MyHandler());

        server.start();

    }

 

    static class MyHandler implements HttpHandler {

        @Override

        public void handle(HttpExchange t) throws IOException {

            String response = "This is the response";

            t.sendResponseHeaders(200, response.length());

            OutputStream os = t.getResponseBody();

            os.write(response.getBytes());

            os.close();

        }

    }

 

}

登录后复制

当请求被发送到时,该服务器会响应消息“这是响应” "/test".

关于 com.sun.* 类的注释:

虽然通常不鼓励使用 com.sun.* 类来实现 Java API 规范,内置 HTTP 服务器是一个例外。它是 JDK 的一个组成部分,不会像 sun.* 包那样带来可移植性问题。

以上是如何用 Java 轻松创建基本的 HTTP 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

2025年的前4个JavaScript框架:React,Angular,Vue,Svelte 2025年的前4个JavaScript框架:React,Angular,Vue,Svelte Mar 07, 2025 pm 06:09 PM

2025年的前4个JavaScript框架:React,Angular,Vue,Svelte

Java的类负载机制如何起作用,包括不同的类载荷及其委托模型? Java的类负载机制如何起作用,包括不同的类载荷及其委托模型? Mar 17, 2025 pm 05:35 PM

Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?

如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案? 如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案? Mar 17, 2025 pm 05:46 PM

如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?

Node.js 20:关键性能提升和新功能 Node.js 20:关键性能提升和新功能 Mar 07, 2025 pm 06:12 PM

Node.js 20:关键性能提升和新功能

冰山:数据湖桌的未来 冰山:数据湖桌的未来 Mar 07, 2025 pm 06:31 PM

冰山:数据湖桌的未来

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存? 如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存? Mar 17, 2025 pm 05:44 PM

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?

如何在Java中实施功能编程技术? 如何在Java中实施功能编程技术? Mar 11, 2025 pm 05:51 PM

如何在Java中实施功能编程技术?

Spring Boot Snakeyaml 2.0 CVE-2022-1471问题已修复 Spring Boot Snakeyaml 2.0 CVE-2022-1471问题已修复 Mar 07, 2025 pm 05:52 PM

Spring Boot Snakeyaml 2.0 CVE-2022-1471问题已修复

See all articles