Проблема сервера HTTP System.out - PullRequest
1 голос
/ 29 сентября 2011

Итак, у меня есть задание, где я должен создать HTTP-сервер с выбранным языком программирования. Ничего страшного. Я столкнулся с проблемой, которую не могу понять. Каждый раз, когда я загружаю домашнюю страницу, то и ответ сервера, он печатает около 5 раз. Не могу понять, почему. Хорошо, так что я имею в виду:

Фрагменты кода:

while(true){
    connectedClient = listenSocket.accept();

    inFromClient = new BufferedReader( new InputStreamReader( connectedClient.getInputStream()));

    outToClient = new DataOutputStream(connectedClient.getOutputStream());

    String requestString = inFromClient.readLine();
    String headerLine = requestString;

    StringTokenizer tokenizer = new StringTokenizer(headerLine);
    String httpMethod = tokenizer.nextToken();
    String httpQueryString = tokenizer.nextToken();

    requestString = inFromClient.readLine();
    if (httpMethod.equals("GET")) {
        if (httpQueryString.equals("/Home")) {
        // The default home page status code 200
        dateHeader();
        connectionCloseHeader();    
    }
//other code not related
}

И это мой метод заголовка даты:

public static void dateHeader() throws Exception{
    DateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z");
    Date date = new Date();
    System.out.println("Date: " + dateFormat.format(date));
}

Мой вывод на терминал будет 5 распечаток даты. Я удостоверился, что соединение и тому подобное было закрыто, но происходит то же самое. У кого-нибудь есть идея, почему это происходит? Спасибо.

EDIT

Кажется, что при использовании Chrome я получаю распечатку без проблем. Я тестировал с Opera, и это дало мне 5 распечаток. Возможно, проблема связана с тем, как работают браузеры. Я просто сейчас использую хром для этого.

1 Ответ

2 голосов
/ 29 сентября 2011

Я не могу сразу учесть пять разных вызовов, но если вы используете обычный браузер для подключения к этому HTTP-серверу, вы сразу увидите два запроса: один для самого ресурса и один для favicon.ico.,Где-то в вашем обработчике запросов вы должны прочитать и распечатать весь запрос.Тогда вы можете точно узнать, для чего все запросы.

...