С чего начать изучение Java для web?

Добрый день!

С чего начать изучение Java под Web-разработку? Какие-то книги может посоветуете? Запутался уже во всем этом изобилии фреймворков, Application Server'ов, все что-то советуют и все, никто не рассказывает почему конкретный выбор лучше других. Например, все вокруг рекомендуют Tomcat, и никто - GlassFish. Почему? Лично мне непонятно. С фреймворками все еще хуже - одни советуют Spring, другие - JSF, третие Grails итд, и опять же не очень подчеркивают достоинства/недостатки. Может, и были подобные вопросы с хорошими ответами раньше, но я не нашел.

Чтобы было проще определить, что мне нужно, приведу примеры того, что хочу сделать:
1. Веб-приложение для выполнения запросов к некой БД на PostgreSQL (Java здесь, конечно, не принципиальна, но желательна, мы же опыт получаем все таки)
2. Веб-приложение для автоматизации управления некой информационной системой (здесь Java предпочтительна, т.к. API системы на Java).

Хочется услышать обоснования, какие технологии для таких вещей предпочтительнее, и почему. Или хотя бы ссылку, где можно сравнения почитать, чтобы сделать выбор (я не нашел, честно).
  • Вопрос задан
  • 1880 просмотров
Пригласить эксперта
Ответы на вопрос 3
jaxtr
@jaxtr
JavaEE/Spring-разработчик
Я бы рекомендовал начинать изучение веб-разработки на Java c изучения Spring и ознакомления с основными компонентами Java EE. Ради интереса в дальнейшем можно более подробно ознакомиться с Java EE (ибо Spring и его компоненты сопряжены с Java EE), но за последние годы пути Java EE и Spring разошлись (особенно в плане веба). Плюс сейчас есть проект Spring Boot, который упрощает процесс погружения в Spring.

Про Java EE скажу, что изучать есть смысл только JPA, т.к. оно активно используется в Spring Data JPA; технологии, связанные с вебом - JSP и JSF, нынче не актуальны, JSP заменяется более вменяемыми библиотеками шаблонирования вроде Thymeleaf и Freemarker, а JSF заменяется самим Spring MVC.

Насчёт контейнеров: Tomcat (а так же Jetty и Undertow) - веб-контейнер, который поддерживает только Java EE Web Profile, в то время как Glassfish (а так же Payara, Wildfly и JBoss) поддерживает весь стек Java EE, который нужен не всегда.
uuPbl.jpg

Мой совет - учи Spring, а Java EE оставь на досуг.
Ответ написан
Vestail
@Vestail
Software Engineer
Professional Java for Web Applications - там есть все что нужно.
Application Servers - это для энтерпрайза из 2000-ых. Сейчас Spring, Hibernate + servlet container(tomcat, jetty) практически стандарт в Java.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Начать надо с понимания того, что есть стандарт JavaEE, который включает в себя множество других стандартов, в том числе стандартов web-разработки, таких как сервлеты, JSP, JSF и прочее. Крайне желательно их знать. Разработанные в соответствии с этими стандартами приложения запустятся на любом сервере приложений. Но не всегда сервер приложений нужен. Для многих задач хватит простого web-контейнера, такого как Tomcat. Что касается выбора фреймворка, Spring настолько всеобъемлющ и популярен, что тягаться с ним какой-либо другой фреймворк просто не сможет. Достаточно открыть любой работный сайт, поискать вакансии java-разработчик и почитать требования. Сильно сомневаюсь, что вы найдёте Grails.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы