前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Java中创建一个简单的HTTP服务器

如何在Java中创建一个简单的HTTP服务器

作者头像
很酷的站长
发布2023-09-21 08:27:36
8830
发布2023-09-21 08:27:36
举报
文章被收录于专栏:站长的编程笔记
如何在Java中创建一个简单的HTTP服务器
如何在Java中创建一个简单的HTTP服务器

在Java中创建一个简单的HTTP服务器可以通过利用Java内置的com.sun.net.httpserver.HttpServer类来完成。以下将会对此进行详细的介绍。

一、HttpServer类总览

Java提供了com.sun.net.httpserver类,该类提供了实现HTTP服务器的有限公开API。使用它可以启动一个监听指定端口的HTTP服务器,并且对请求的URL做出响应。

此类包含start()方法来启动服务器,createContext()方法来指定URL路径和处理该路径请求的回调函数。最后,通过调用HttpServer.create()并传递一个InetSocketAddress建立服务器。

代码语言:javascript
复制
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import java.net.InetSocketAddress;

public class SimpleHttpServer {
    public static void main(String[] args) throws Exception {
        HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
        server.createContext("/applications/myapp", new MyHandler());
        server.setExecutor(null); // creates a default executor
        server.start();
    }
}

二、创建处理程序

HttpHandler是处理HTTP交换的回调函数。它只有一个方法void handle(HttpExchange t)。HttpExchange有请求方法getField()、响应方法sendResponseHeaders()、以及获取RequestBody和ResponseBody的方法。

代码语言:javascript
复制
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;

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();
    }
}

三、运行服务器

最后,在编写完处理程序和主程序后,可以运行主程序以启动服务器。然后浏览器访问http://localhost:8000/applications/myapp,就会显示出我们在处理程序中定义的响应内容了。

代码语言:javascript
复制
public class Main {
    public static void main(String[] args) throws Exception {
        SimpleHttpServer.main(args);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、HttpServer类总览
  • 二、创建处理程序
  • 三、运行服务器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档