Здесь есть чему поучиться, так что я бы поняла это по очереди.Я предполагаю, что вам относительно комфортно работать с языком Java и основными API.
Сначала узнайте о JDBC и базах данных.Получите работающее базовое функциональное приложение-пример JDBC (не визуальное, а просто простое Java-приложение), которое читает / вставляет / обновляет / удаляет некоторые записи в таблице.Это даст вам основу для создания любого приложения по вашему выбору.Почти все интересные приложения включают в себя своего рода персистентность / базу данных.
Изучите основные API JDBC (Connection, PreparedStatement, ResultSet) и напишите некоторый код, который использует их для удобства.
Узнайте о том, кактранзакции работают в базах данных, если вы еще не знакомы и как их использует JDBC (Connection.commit и откат)
Далее вы можете заглянуть в среду Spring.Это имеет несколько полезных функций, которые пригодятся при создании этих приложений.Основные из них, чтобы узнать функциональность внедрения зависимостей и библиотеки JDBC, которые она имеет.Материал DI немного "дух"?если вы не использовали его раньше, но это очень полезно / мощно, особенно для приложений среднего размера +.Библиотеки JDBC помогают справляться с необработанными API-интерфейсами JDBC и делают ваш код менее подверженным ошибкам.
Как только вы разберетесь с некоторыми базовыми вещами JDBC и Spring, вы можете начать использовать вебframework.
Это сложнее, потому что их так много.В интересах быстрого начала работы, я бы, наверное, пошел с Wicket.Он работает в контейнере сервлетов, таких как Jetty, его легко настроить и запустить с одной или двумя основными веб-страницами, а также относительно легко развить проект с течением времени, не спускаясь слишком много тупиков.Я обнаружил, что фреймворки, такие как JSF (фреймворк web / view по умолчанию для Java EE), требуют значительных предварительных инвестиций.Большинство из этих фреймворков, включая Wicket, могут использовать все вышеперечисленное.
Избегайте JSP, это непривлекательная технология и устарела практически во всем остальном.
Чтобы ответить на некоторые другие ваши вопросыpoints.
Hibernate - это инструмент для отображения объектной модели в реляционную модель.В его основной форме вы определяете класс Java для каждой таблицы БД, причем класс имеет одно свойство Java (переменная + получатель + установщик) для каждого столбца БД.Вы также можете добавить ссылки из одного класса в другой для моделирования отношений с базой данных.Это хорошо, но к этому нужно привыкнуть.
Весна, которую я частично объяснил выше.Spring намного больше, чем просто DI и некоторые библиотеки JDBC.Он также имеет библиотеки управления транзакциями и кучу других вещей.Spring MVC - это веб-фреймворк, который живет под зонтиком Spring и использует множество библиотек Spring внутри.Я никогда не использовал его, поэтому не могу высказать свое мнение.
Java EE - это общий термин для большого набора «корпоративных» спецификаций / библиотек.JSF - это инфраструктура веб-представления, являющаяся частью Java EE.
Это мой совет очень высокого уровня.Подводя итог, я бы изучил основы DB / JDBC, затем кое-что из пружин, а затем начал бы создавать базовое веб-приложение, используя то, что вы уже изучили.
Надеюсь, это поможет.В Интернете есть много информации по всем этим темам, и вы всегда можете задать вопросы здесь по более конкретным вопросам, если вам нужна помощь.Удачи и наслаждайтесь!
РЕДАКТИРОВАТЬ (для комментария):
Все вышеизложенное - моя рекомендация / мнение о том, как подойти к обучению веб-разработке на Java.
В итоге
- Изучение JDBC / транзакций / баз данных является обязательным
- Spring не обязателен, но я настоятельно рекомендую.Spring - большая библиотека, но вы можете выбирать нужные вам биты.
- Веб-фреймворки - выбор за вами.Из того, что я пробовал (JSF / JSP / Wicket), Wicket - самый простой способ начать работу, поэтому вы не тратите слишком много времени на получение первоначальной настройки.JSP ужасен, с ним очень легко запутаться.JSF является мощным, но тяжелым и, вероятно, больше подходит для очень предприимчивых проектов, чем первое веб-приложение.
- Hibernate не является обязательным, но может упростить жизнь просто потому, что вы можете работать с объектами Java, когда выполняете запросы / обновления БД, а ненаписание утомительных операторов вставки / обновления.Hibernate не единственный инструмент, подобный этому, но это тот, который я использовал больше всего и хорошо выполняет свою работу.Только не стоит слишком зацикливаться на «умных» функциях гибернации.
Вы можете легко использовать Spring MVC вместо Wicket.Это может быть очень хорошим выбором, я сам не использовал Spring MVC, поэтому не могу комментировать.Я уверен, что он хорошо интегрируется с весенними вещами, так что это, безусловно, будет положительным фактором.
Если вы не уверены, проведите еще какое-то исследование, ведь нет конца людям, которые будут рады высказать свое мнение!Но на самом деле нужно просто окунуться и попробовать что-то.