Criar um Servidor HTTP simples com Java?

Qual é a maneira mais fácil de criar um Servidor HTTP simples com Java? Existem bibliotecas nos comuns para facilitar isso? Só preciso de responder a {[[0]}, e não posso usar um servidor de aplicações.

Qual é a maneira mais fácil de conseguir isto?

Author: Stefan Kendall, 2010-04-26

13 answers

Utilizar Jetty . Aqui está o exemplo oficial para embedding Jetty . (Aqui está um tutorial desactualizado .)

O Jetty é bastante leve, mas fornece um recipiente servlet, o que pode contradizer a sua exigência de usar um "servidor de aplicações".

Pode inserir o servidor de Jetty na sua aplicação. O Jetty permite opções de contêineres incorporados ou servlet.

Aqui está mais uma rápida começar o tutorial junto com o código-fonte .

 46
Author: Kris, 2021-01-08 14:45:29
É assim que eu faria:
  1. iniciar uma escuta {[[0]} (provavelmente no porto 80).
  2. Assim que tiver um pedido de ligação, aceite e passe para outro tópico/processo (isto deixa o seu ServerSocket disponível para continuar a ouvir e aceitar outras ligações).
  3. Analise o texto do pedido (especificamente, os cabeçalhos onde você vai ver se é um GET ou POST, e os parâmetros passaram.
  4. responda com os seus próprios cabeçalhos (Content-Type, etc.) and the HTML.

Considere útil usar Firebug (no Firefox) para ver exemplos de cabeçalhos. É isto que queres imitar.

Tente esta ligação: - servidor Multithreaded em Java

 33
Author: Philippe Signoret, 2016-04-29 22:14:16

O mais fácil é Simples Existe um tutorial, sem WEB-INF não Servlet API sem dependências. Apenas um simples Servidor HTTP leve em um único JAR.

 21
Author: ng., 2010-04-26 22:27:07

Se estiver a usar o Sun JDK, pode usar isto incorporado na Biblioteca
Veja este site sobre como usar.

Se não houver váriosservidores HTTP de código aberto aqui que possa incorporar no seu 'software'.

 8
Author: Romain Hippeau, 2017-05-23 12:34:31

O Java 6 tem um Servidor http embutido por omissão.

Assinale o tópico aqui

A propósito, Se você planeja ter um serviço de rest web, aqui está um exemplo simples usando jersey .

 4
Author: Titu, 2017-05-23 11:47:05
Este exemplo não está aqui.

Http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/ElementalHttpServer.java

Editar >> A ligação acima não é acessível. Aqui está um trecho do exemplo POST seguido pelo link para os exemplos HTTP.

 if (!conn.isOpen()) {
        Socket socket = new Socket(host.getHostName(), host.getPort());
        conn.bind(socket);
    }
    BasicHttpEntityEnclosingRequest request = new
    BasicHttpEntityEnclosingRequest("POST",
    "/servlets‐examples/servlet/RequestInfoExample");
    request.setEntity(requestBodies[i]);
    System.out.println(">> Request URI: " + request.getRequestLine().getUri());
    httpexecutor.preProcess(request, httpproc, coreContext);
    HttpResponse response = httpexecutor.execute(request, conn, coreContext);
    httpexecutor.postProcess(response, httpproc, coreContext);
    System.out.println("<< Response: " + response.getStatusLine());
    System.out.println(EntityUtils.toString(response.getEntity()));
    System.out.println("==============");
    if (!connStrategy.keepAlive(response, coreContext)) {
    conn.close();
    } else {
    System.out.println("Connection kept alive...");
    }

Http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/

 4
Author: nikdeapen, 2015-12-11 12:00:36

Eu escrevi um tutorial explicando como escrever um Servidor HTTP simples um tempo atrás em Java. Explica o que o código está fazendo e por que o servidor é escrito dessa forma à medida que o tutorial avança. Pode ser útil http://kcd.sytes.net/articles/simple_web_server.php

 3
Author: Charles Dobson, 2012-03-19 20:59:09
A incorporação do Tomcat é relativamente indolor. Aqui está uma boa referência ao StackOverflow.
 1
Author: Dan, 2017-05-23 12:17:59

Implementei uma ligação

Para processar o json, usei o jackson. Você também pode remover isso, se precisar de
 1
Author: akash, 2019-12-05 13:15:50

O Jetty é uma ótima maneira de incorporar facilmente um Servidor HTTP. Ele suporta sua própria maneira simples de anexar manipuladores e é um servidor de aplicativos J2EE completo se você precisar de mais funcionalidade.

 1
Author: maerics, 2021-01-06 08:35:18
Um recipiente servlet é definitivamente o caminho a seguir. Se o Tomcat ou o Jetty são demasiado pesados para si, considere o Winstone ou TTiny.
 0
Author: Michael Borgwardt, 2010-04-26 22:22:32

A Undertow é um simples não-bloqueador servidor web embutido que pode pôr em funcionamento muito rapidamente.

public static void main(String[] args) {
Undertow.builder()
        .addHttpListener(8080, "localhost")
        .setHandler((exchange) -> exchange.getResponseSender().send("hello world"))
        .build().start();
}
 0
Author: Bill O'Neil, 2019-03-19 00:37:25
Acabei de adicionar um repo público com um servidor pronto para acabar, usando o Jetty e o JDBC para iniciar o seu projecto. Tira daqui o github.: https://github.com/waf04/WAF-Simple-JAVA-HTTP-MYSQL-Server.git
 -1
Author: William Falcon, 2013-10-15 02:21:18