DEV Community

Paulo Collares
Paulo Collares

Posted on • Originally published at paulocollares.com.br on

2 1

Servidor HTTP simples em Java

Servidor HTTP simples em Java

Neste post iremos montar um servidor HTTP simples em Java. Útil para obter informações simples de uma aplicação rodando um background por exemplo.

O projeto completo pode ser baixado no Github: https://github.com/pcollares/exemplos-blog/tree/master/SimpleHTTPServer

O primeiro passo é criar uma instância do servidor http nativo:

HttpServer servidor = HttpServer.create(new InetSocketAddress(8080), 0);

Nesse exemplo ele irá executar na porta 8080.

Agora adiciono um novo contexto e uma classe, que criaremos abaixo que será quem irá resolver as requisições.

servidor.createContext("/", new Root());

Bastando iniciar o servidor agora

servidor.start();

Nesse exemplo, a classe Root que irá responder as requisições feitas para o contexto ‘/’ e deve implementar a interface HttpHandler para que o método handle prepare o retorno que será enviado no corpo da resposta http.

Para isso, crio um StringBuilder para facilitar a concatenação das Strings:

StringBuilder out = new StringBuilder();

out.append("<html>");
out.append("<head>");
out.append("<title>Ola mundo").append("</title>");
out.append("</head>");
out.append("<body>");
out.append("Olá mundo");
out.append("</body>");
out.append("</html>");

E escrevo essa saída como um array de bytes:

he.sendResponseHeaders(200, out.toString().length());

try (OutputStream os = he.getResponseBody()) {
    os.write(out.toString().getBytes("ISO-8859-1"));
}

O resultado pode ser visto acessando http://localhost:8080/

No código completo no Github, adicionei mais uma página de exemplo (/stats) que demonstra como pode ser útil para obter informações do Hardware e do sistema operacional, como memória, uso do disco, processador, threads, etc…

Exemplo de resposta do servidor http simples em Java

[]’s

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more