Свой веб-сервер на Java за 60 мин

preview_player
Показать описание
Вебинар для начинающих Java-разработчиков

Ссылка на бесплатную карьерную консультацию от Geekbrains

Для тех, кому интересно больше по теме

А еще есть книжка
How Tomcat Works: A Guide to Developing Your Own Java Servlet Container
by Paul Deck, Budi Kurniawan
Brainy Software 2005
Рекомендации по теме
Комментарии
Автор

Спасибо, огромное! Мой первый шаг в HTTP JAVA.

Lev_Future
Автор

Спасибо большое, видео помогло разобраться в создании сервера

lankor
Автор

1:16:53 оно не юзало директорию out, потому что оно юзает всё относительно classpath, то есть корня проекта. Проблема была в "." вместо "www\."
Спасибо за тутор.

botsynth
Автор

Получилось даже с другого пк ввел вместо loccalhost ip адрес сервера. Ура

pqwufxl
Автор

тоже красным выделяло, а все работает, invalidate Caches далее чистить кеш флаг

romabulava
Автор

Ctrl-D здесь работает. Строки дублировать как Android Studio

pqwufxl
Автор

Второе исключение не заработало. Все подчеркнуло. Пришлось удалить. И вообще не получилось добавить катч автоматически

pqwufxl
Автор

Можно глупый вопрос?
Проделал все манипуляции с заголовками. Коннект есть, но в браузере не отображается переданное сообщение. Там по прежнему «не удалось соединиться»

dmitryarcateon
Автор

Я вот какой момент не понимаю. Классы декораторы, вроде BufferedReader при закрытии делают флаш потока, которым они владеют. При этом, закрытие сокета вызывает закрытие обоих потоков, которыми он владеет. И вот тут непонятно - получается, если закрыть сокет до закрытия декоратора, то флаш никто не сделает? Получается, нужно сначала закрыть вручную (либо через try) выходной поток, а потом уже закрывать сокет?

botsynth
Автор

Сделал тоже самое, код ниже, текст не появляется,


public class Main {
public static void main(String ... args) {
try {
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("Server started");

Socket socket = serverSocket.accept();
System.out.println("New client connected");

try {
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
PrintWriter output = new


while (!input.ready());

while (input.ready()){

}



output.println("HTTP/1.1 404 OK");
output.println("Content-Type: text/html; charset=utf-8");
output.println();
output.println("<h1> Всем привет </h1>");

} catch (IOException e) {
e.printStackTrace();
}

} catch (IOException e) {
e.printStackTrace();
}

}
}

uhrqwwf