Изучаю Java SE для применения в вебе. Вот никак не могу понять, что за Enterprise Edition. C SE все понятно - набор разных библиотек, которые поставляются с джавой, компилятор там и все подобное. Но Java EE - это какая-то загадка. Википедия говорит, что Java EE - это Java SE с очень хорошей спецификаций, способностью к масштабированию и все такое прочее. Но что действительно это значит ? Разве у SE плохая спецификация ? В описании "для чайников" говорится, что Java EE - это Java SE с динамически меняющимися библиотеками. Это как ? Если имеется ввиду обновление, то и на SE есть Maven и все такое, зачем тогда EE ? Еще часто говорят, что Java EE нужен для серверных разработок. Но зачем ? Сервлеты без проблем можно клепать и на Java SE. Для использования backend-сервера можно воспользоваться библиотекой Jetty. И все это SE... Лично мне пока вообще не понятно, что происходит в мире Java EE. Может кто-нибудь привести пример использования или написать, чем EE действительно может помочь ?
Ответ Что-то вы не то прочитали в википедии, или не так поняли. Википедия не говорит, что Java EE это Java SE. Java EE - набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий. https://ru.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition Да, если вы напишите сервер на Jetty, это будет не Java EE (это будет чать Java EE начиная с 7-ой версии Jetty). Но Java EE это не одни сервлеты, туда входит JSP, EJB, CDI, JPA и куча других спецификаций (см. ссылку на википедию). На практике, J2EE это базовый набор интерфейсов/классов/аннотаций, а уже имплементации предоставляют сервера приложений - WildFly, GlassFish, WebSphere и другие. Разве у SE плохая спецификация ? Не плохая, это разные спецификации. В описании "для чайников" говорится, что Java EE - это Java SE с динамически меняющимися библиотеками. Бред. Но зачем ? Сервлеты без проблем можно клепать и на Java SE. Для использования backend-сервера можно воспользоваться библиотекой Jetty. Jetty это контейнер сервлетов, это грубо говоря реализация части J2EE (с 7-ой вресии поддерживает Servlet 2.5 API, с 8-ой 3.0). Также как, например, Weld одна из реализаций CDI. Вы это всё можете использовать по отдельности, можете все вместе. Можете взять N технологий J2EE и связать самостоятельно, получится кривенький-косенький сервер приложений. Хотя лучше всё таки взять готовый ) И все это SE... И Jetty это SE, и другие фреймворки это SE, да и половина классов Java это тоже SE. Если есть желание, можете всё с нуля писать. Лично мне пока вообще не понятно, что происходит в мире Java EE. Советую прочитать от и до хотя бы одну книгу по J2EE. Может кто-нибудь привести пример использования или написать, чем EE действительно может помочь ? Каждая спецификация из J2EE вам чем-то помогает, вы можете использовать их по отдельности или в комплексе, в зависимости от ваших задач. Например: CDI - удобная инъекция зависимостей, не нужно писать кучу лишнего кода или модулей для Guice, JPA - удобная работа с БД на уровне объектов, EJB - удобное написание бизнес логики, JAX-WS - поддержка веб-сервисов, сервлеты - обработка HTTP запросов и т.д. Разрешите одному программисту использовать только Java SE, а второму Java EE и посмотрите за сколько они решат какую-нибудь задачу связанную с веб.