Я бы сказал, что минимальные возможности для использования Java EE:
- Сервлеты и JSP, написанные с использованием JSTL (без скриплетов)
- JDBC
- JNDI для объединения подключений к базе данных (необязательно, но рекомендуется)
- Базовая аутентификация для безопасности
Вы можете многого достичь, зная только это. Если вы хотите минимизировать кривую обучения, я бы рекомендовал начинать с них и держаться подальше от EJB, JMS, Struts, JSF и т. Д.
Другое преимущество заключается в том, что этот набор функций является общим для механизмов сервлетов / JSP, таких как Tomcat, Jetty, Resin и т. Д., А также для полноценных серверов приложений Java EE, таких как WebLogic, JBOSS, WebSphere и т. Д. Приложение, которое запускается один из них должен быть переносим на любой другой, если вы избегаете расширений, специфичных для движка приложения.
Вы должны понимать, что здесь есть компромисс. Вам придется разрабатывать части, которые могут быть проще, если вы будете больше использовать сервер приложений. Но, надеюсь, вы начнете с некоторых более простых проблем и продолжите свой путь, как только освоите основы.
Существует другой подход: наймите опытного гида, который поможет вам с обучением и наставничеством для первого проекта. Вас может начать шестимесячный концерт в известной консалтинговой фирме.
Наконец, я бы порекомендовал Spring. У него также есть кривая обучения, но это хорошая альтернатива разработке Java EE EJB.