Maison >Java >javaDidacticiel >Comment puis-je créer un serveur HTTP simple à l'aide de l'API Java SE ?

Comment puis-je créer un serveur HTTP simple à l'aide de l'API Java SE ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-12 10:28:12590parcourir

How Can I Create a Simple HTTP Server Using the Java SE API?

Utilisation de l'API Java SE pour créer un serveur HTTP

Java SE inclut HttpURLConnection pour la fonctionnalité client HTTP, mais il lui manque une option analogue côté serveur. Pour éviter une analyse et un formatage manuels fastidieux des requêtes et des réponses HTTP, considérez le serveur HTTP intégré introduit dans Java SE 6 situé dans le module jdk.httpserver.

Exemple de serveur HTTP simple

Voici un exemple utilisant le serveur HTTP intégré pour gérer les requêtes :

package com.example;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;

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.setExecutor(null); // Creates a default executor
        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.getBytes().length); // Specify charset for getBytes()
            OutputStream os = t.getResponseBody();
            os.write(response.getBytes());
            os.close();
        }
    }

}

Visitez l'URL spécifiée (par exemple, http://localhost:8000/test) avec votre navigateur pour voir la réponse :

This is the response

Utilisation de com.sun.* Classes

Le package com.sun. est Son utilisation n'est pas interdite car elle concerne spécifiquement le code écrit par le développeur qui utilise des API spécifiques à Sun/Oracle, et non l'API Java SE intégrée. Ainsi, l'exploitation des classes com.sun. pour le serveur HTTP est acceptable car ces classes sont incluses dans toutes les implémentations JDK.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn