Как стать автором
Обновить

Комментарии 16

Господи, за что?..
Я правильно понимаю, что
urlMapping.contains(method.getAnnotation(RequestMapping.class).path())

будет возвращать true для метода с @RequestMapping(path = "/") и urlMapping равного "/hello.html"?
если делать по уму то там должен быть некий хитрый RegExp, который будет парсить url, отделять от него параметры (для GET), здесь ознакомительный контроллер, с 2 @RequestMapping отличными от @RequestMapping(path = "/"). Парсинг примитивно сделан
И еще вопрос если я запрашиваю у вас адрес вида "/post.html?postid=461965#habracut" то что вернёт parseRequestParameter?
В догонку, так как вы выложили полную версию кода мне сложно об этом говорить, но кажется что всесто
bufferedWriter.write(ERROR + ERROR_MESSAGE.length() + OUTPUT_END_OF_HEADERS + readFile(fileName, param));
Должно быть
bufferedWriter.write(ERROR + ERROR_MESSAGE.length() + OUTPUT_END_OF_HEADERS + ERROR_MESSAGE)

вам кажется, в проекте есть шаблон error.html который и будет загружен, про полную версию кода вы придумали сами, я такого не писал, я привел примеры ключевых файлов, в которых некоторые методы todo, чтоб показать общую тенденцию происходящего, Вы же во первых это не заметили, во вторых не прочитали поясняющий комментарий на свой первый вопрос. Вы не поняли о чем эта статья(что может быть как виной автора, так и виной читающего).
Ок, а можно узнать что тогда лежит в ERROR_MESSAGE? И зачем берется длина этой строки?
И можно уточнить о чём эта статья? Написать веб приложение не соответствующее стандартам?
PS многие вопросы бы отпали если бы была ссылка на полную версию кода.
А можно я заберу это, чтоб на код ревью предлагать кандидатам во время собеседования?
Опередили!
Публикация из разряда — я изучал MVC и сделал сам. Хоть и не джавист, но вижу, что в разработке опыта ещё немного. Есть склонность к усложнению, а не к упрощению
Я так понимаю, это статья начального уровня, тогда для вхождения не хватает ссылок на то, куда читать, чтоб это запустить на сервере и как этот сервер настроить, чтоб все работало. А еще хоть один скриншот того, что получилось снаружи…
спасибо, только увидев название: мне уже интересно.
Насчет вашего синглтона HttpRequestSocket. Я правильно понимаю, что у вас предполагается одно соединение с одним клиентом на все время работы сервера?
да, все так, предложение однопоточное, так как задача была показать жизненный цикл WEB-MVC сервиса, от запроса в браузере до странице в браузере, не вдаваясь в тонкости многопользовательского приложения, можно было из препроцессора дергать задачи в отдельном TaskExecutor, но. повторюсь, цель была другая.
Даже в рамках модельного примера одиночка ClientSocket смотрится очень странно. Вот одиночка (singleton) ServerSocket — совсем другое дело. И никакой многопоточности не нужно. Просто в бесконечном цикле вызываем accept(), дожидаемся запроса обрабатываем его и возвращаемся на ожидание. Это один из типовых способов работы с ServerSocket. Пример такого цикла можете глянуть у меня вот в этой статье habr.com/ru/post/441150
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории