1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Retornar página HTML em Servidor WEB

Boa tarde, Estou começando a fazer uma aplicação de um servidor WEB em Java e estou em dúvida de como retornar ao cliente (no caso um navegador) uma página html simples. Até o momento o código faz a conexão, que funciona perfeitamente, porém sem retornar nada. Alguma dica de como proceder? Obrigado!

Segue abaixa as duas classes (Main e HTTPServidor) implementadas até o momento:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Esta classe será responsável por iniciar a conexão.
 * 
 */
public class HTTPServidor {

    private int porta;

    public HTTPServidor() {
        this.porta = 80;
    }

    public HTTPServidor(int porta) {
        this.porta = porta;
    }

    public void setPorta(int porta) {
        this.porta = porta;
    }

    public void iniciar() {

        ServerSocket socketServidor = null;
        System.out.println("Servidor Iniciando...");

        try {

            System.out.println("Tentando alocar a porta...");
            socketServidor = new ServerSocket(porta);

        } catch (IOException e) {

            System.out.println("Erro Fatal: " + e.getMessage());

        } catch (Exception e) {

            System.out.println("Erro Fatal: " + e.getMessage());

        }

        System.out.println("Servidor OK!");

        while (true) {

            System.out.println("Servidor Aguardando...");
            Socket socket = null;

            try {

                socket = socketServidor.accept();
                InetAddress infoCliente = socket.getInetAddress();
                System.out.println("Cliente: " + infoCliente.getHostName() + " conectou ao servidor!");
                BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));                
                int linhaRequisicao = 0;

                while (input.ready()) {

                    System.out.println(linhaRequisicao + " "+ input.readLine());                    
                    linhaRequisicao++;
                }

                socket.close();

            } catch (Exception e) {

                System.out.println("Erro de conexão: " + e.getMessage());

            }

        }
    }

}

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        HTTPServidor servidor = new HTTPServidor(8012);
        servidor.iniciar();

    }

}

Abaixo trecho do console após ser digitar no nagevador (cliente) o 'localhost:porta'.

run:
Servidor Iniciando...
Tentando alocar a porta...
Servidor OK!
Servidor Aguardando...
Cliente: FLAMEDEARFLAMEK conectou ao servidor!
0 GET / HTTP/1.1
1 Host: 10.0.0.101:8012
2 Connection: keep-alive
3 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
4 Upgrade-Insecure-Requests: 1
5 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
6 Accept-Encoding: gzip, deflate, sdch
7 Accept-Language: pt-BR,pt;q=0.8
8 
Servidor Aguardando...
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags http sockets java ou faça a sua própria pergunta.