Запись html-файла обратно в браузер: Java - PullRequest
0 голосов
/ 20 октября 2011

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

public void sendResponse(File resource){
        System.out.println(resource.getAbsolutePath());

        Scanner fileReader;
        try {
            fileReader = new Scanner(resource);

            while(fileReader.hasNext()){
                socketWriter.println(fileReader.nextLine());
            }
        } catch (FileNotFoundException e) {
            System.out.println("File not found!");
            e.printStackTrace();
        }
    }

Что я делаю неправильно? Исключений нет, но браузер продолжает загружаться и загружаться.

Ответы [ 3 ]

1 голос
/ 20 октября 2011

означает, что ваш код застрял в бесконечном цикле. Проверьте ваш цикл. nextLine () не перемещает указатель файла вперед?

0 голосов
/ 20 октября 2011

Из вашего кода не видно, куда идет socketWriter.Операции низкого уровня, такие как сокет, лучше всего обрабатываются самим веб-сервером.Обычно, когда нам нужно написать ответ обратно в браузер, мы используем объект HttpServletResponse , который доступен в методе goGet / doPost вашего сервлета.Обратитесь к javadocs для получения дополнительной информации.

0 голосов
/ 20 октября 2011

Трудно сказать, не зная, что типа socketWriter, но я думаю, вам нужно закрыть соединение.Найдите close() метод или что-то подобное в socketWriter и вызовите его, когда закончите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...