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

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

DDD
DDDoriginal
2024-12-09 21:16:14445parcourir

How to Create a Simple HTTP Server in Java using the Java SE API?

Création d'un serveur HTTP simple en Java avec l'API Java SE

L'API Java SE fournit la classe HttpURLConnection pour les fonctionnalités du client HTTP. Cependant, cela vous laisse la tâche d'analyser manuellement les requêtes HTTP et de formater les réponses HTTP, ce qui peut être fastidieux et sujet aux erreurs.

Heureusement, depuis Java SE 6, un serveur HTTP intégré est disponible. dans le module jdk.httpserver (com.sun.net.httpserver dans les versions antérieures).

Voici un exemple simple adapté de la documentation :

import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;

public class MyHttpServer {

    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.length());
            OutputStream os = t.getResponseBody();
            os.write(response.getBytes());
            os.close();
        }
    }

}

Ce serveur répond par "Voici la réponse" lorsqu'une requête GET est envoyée à http://localhost:8000/test.

Remarque :

Bien que l'utilisation des classes com.sun.* soit déconseillée à des fins d'implémentation, elle n'est pas interdite pour les classes utilitaires comme celle-ci HTTP. serveur.

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