Введение в Java EE
Java EE или Java Enterprise Edition представляет платформу для создания корпоративных приложений на языке Java. Прежде всего это сфера веб-приложений и веб-сервисов.
Java EE состоит из набора API и среды выполнения. Некоторые из API:
- Java Servlets . Сервлеты представляют специальные модули, которые обрабатывают запросы от пользователей и отправляют результат обработки.
- JavaServer Pages (JSP) . Также модули на стороне сервера, которые обрабатывают запросы. Удобны для генерации большого контента HTML. По сути предствляют собой страницы с кодом HTML/JavaScript/CSS с вкраплениями кода на Java
- Enterprise JavaBeans (EJB) представляют классы, которые хранят бизнес-логику.
- Contexts and Dependency Injection (CDI) предоставляет механизм для внедрения и управления зависимостями в другие объекты.
- JSON Processing (JSON-P) позволяет работать со строками JSON в Java
- JSON Binding (JSON-B) предоставляет функционал для сериализации и десериализации JSON в объекты Java.
- WebSocket позволяет интегрировать WebSocket в приложения на Java.
- Java Message Service (JMS) — API для пересылки сообщений между двумя и более клиентами.
- Security API — API для стандартизации и упрощения задач обеспечения безопасности в приложениях на Java.
- Java API for RESTful Web Services (JAX-RS) — API для применения архитектуры REST в приложениях.
- JavaServer Faces (JSF) предоставляет возможности для создания пользовательского интерфейса на стороне сервера.
Эти и ряд других API сообственно и образуют то, что называется Java EE. Стоит отметить, что также в среде веб-разработки на Java популярна еще одна технология Spring. Фреймворк Spring не является частью Java EE и может использоваться как альтернативный подход к созданию веб-приложений на языке Java.
История развития
Предтечей Java EE был проект JPE Project, который стартовал в мае 1998 года. А в декабре 1999 года вышел релиз платформы Enterprise Java Platform (J2EE 1.2), которая объединяла такие компоненты как сервлеты, JSP, EJB, JMS. В 2006 году с выходом 5-й версии она была переименована в Java Enterprise Edition (JEE). С тех пор периодически выходят новые версии платформы. Последняя текущая версия — Java EE 8 вышла в сентябре 2017 года.
В 2017 году произошла новая веха в развитии платформы: Oracle передал контроль над развитием Java EE организации Eclipse Foundation. А в апреле 2018 года Java EE была переименована в Jakarta EE .
В начале 2019 года ожидается выход новой версии Jakarta/Java EE.
Официальный сайт платформы https://jakarta.ee/.
Установка IDE
Для работы с Java EE нам потребуется среда разработки или IDE. Есть различные среды разработки, которые ориентированы на корпоративную разрабоку под Java. Это IntelliJ IDEA, NetBeans и Eclipse. В данном случае на протяжении всего руководства мы преимущественно будем использовать Eclipse, потому что она является бесплатной и довольно широко распространена.
Для начала установим последнюю версию Eclipse, которую можно найти по адресу https://www.eclipse.org/downloads/. На странице загрузок выберем найдем рядом с названием текущей версии Eclipse кнопку «Download» и нажмем на нее.
После нажатия на кнопку нас перенаправит собственно на страницу загрузки, где необходимо будет нажать на кнопку «Download» для загрзуки установочного пакета:

После ее загрузки программы установки запустим ее и в отобразившемся списке опций выберем Eclipse IDE for Java EE Developers :

Далее надо будет указать папку для установки (или оставить выбранную папку по умолчанию) и принять пару лицензионных соглашений, и среда будет установлена.
Что такое Java EE?
Изучаю 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 действительно может помочь ?
Отслеживать
задан 1 авг 2016 в 19:19
7,708 17 17 золотых знаков 70 70 серебряных знаков 132 132 бронзовых знака
Писать сайты можно используя JavaEE, там будут сервлеты(Java Servlet) тесно связанные с .jsp файлом) .jsp файл это почти что одно и тоже что и HTML) Я конечно не профи в этой сфере, но благодаря JavaEE я научился писать динамическо-меняющиеся сайты)
1 авг 2016 в 22:35
@KryTer_NexT писать сайты на java — имхо извращение. Все равно, что телепОртером картошку окучивать. Java для бОльшего нужен.
Что это такое ваше Java EE?
Расшифровка Java SE — Java Standart Edition. Эсьешая джава это стандартный набор который идет с JDK (хотя постепенно пополняется) . Java SE довольно мощная сама по себе но в соло она катки особо не тащит. Java EE — Java Enterprise Edition это то что уже успело умереть но и породило штуковин которые сейчас у всех на слуху.
Просматривая миллиард хитрожопых джава ее аннотаций
Но сначала немного о том что было миллиард лет назад.
Или о том как Java EE родилась, развивалась и откинулась (хотя не совсем то и откинулась).
В общем где то в нулевых годах зародилась такая штука как Java EE. По сути это был набор спецификаций. Эти спецификации стандартизировали всякую дичь которую деплоили на апликейшен серваки.
Апликейшн Сервер, Щито?
Проще говоря это такая Java программа которая позволяет динамически подгружать (или отгружать) другие Java программы. Спецификации которые описывает Java EE позволяют стандартизировать решения от разных производителей. Например JPA Java Persistence API определяет стандарт для взаимодействия с базой через ORM (Object Relational Mapping).
На практике это значит что Java EE в своем JSR (Java specification Request — или проще говоря в документации) опишет следующие аннотации и требования к ним.
Вот такая документация, я думаю она вам понадобится примерно никогда.
В общем рядовым программистам нужно всего лишь знать какие аннотации использовать которые затем могут быть подменены имплементациями других производителей.
Пример документации. Аннотация @Entity @Id
Если использовать лишь стандартный JPA тогда можно переключив зависимости не менять код вообще. Например для JPA можно использовать следующие реализации:
- DataNucleus
- Hibernate
- EclipseLink
- OpenJPA
НО на практике это неоч работало. Просто добавив зависимость решение не заводилось (чаще потому что требовалось еще какие то зависиомсти итд).
Что было дальше?
В общем история была мутная. В общем Java EE медленно развивалась бла бла и Spring кончил её. Теперь Java EE стала Jakara EE но в общем по большому счету рынок захватил Spring.
Что же такое Java EE сейчас?
Сейчас под этим скорее подразумевается не то о чем я рассказал. А то наследие которое осталось. Все те вагоны аннотаций и их реализации которые решали задачи:
- Взаимодействие с базой данных
- Взаимодействие с очередью
- Взаимодействие с фронтом итд
То старье видизменилось но по сути старые паттерны решают те же задачи.
Еще есть проекты которые живут на апликейшн серверах, особенно в легаси серверах. Потенциал в них все еще есть и Jakarta будет развиваться точнее быстрее чем старый EE мир. Кстати внутри спринга находится томкат или нетти или то еще что то (на выбор) .
Больше контента по Java можно найти в этом чате. Там также можно задавать вопросы и получать консультации. Всем добра.
Java EE сервер приложений
Java EE сервер приложений — продукт промежуточного уровня, который реализует набор J2EE технологий (спецификаций), тем самым предоставляя среду для деплоймента, управления и выполнения Java EE компонентов.
Java EE компоненты выполняются в контейнерах сервера приложений, которые управляют их выполнениям. Контейнеры являются интерфейсом между компонентом и низкоуровневой функциональностью, которая поддерживает компонент, также предоставляя стандарнтые сервисы (Security, JTA, JNDI, Web Services, JMS, JPA и другие), которыми могут воспользоваться компоненты. Рассмотрим возможную архитектуру Java EE приложения.

В данном случае Applet Container и Application Client Container хотя и являются частью Java EE приложения, но не являются частью Java EE сервера приложений.
Web Container предоставляет среду для выполнения следующих Java EE компонентов: Servlets, JSP, JSF.
EJB Container предоставляет среду для выполнения Enterprise JavaBeans (EJB) компонентов.
Следует отметить, что функциональность, реализуемую контейнерами возможно использовать вне сервера приложений. К примеру, Apache Tomcat является самостоятельным продуктом, который реализует Java Servlets и Java Server Pages спецификации, возможно использовать для разработки полноценных приложений, не прибегая к использованию сервера приложений. Apache OpenEJB является реализацией EJB спецификации, предоставляя среду выполнения для EJB компонентов. Многие компании-поставщики серверов приложений используют данные продукты для разработки контейнеров в своих серверах приложений.
Помимо стандартной функциональности компании-поставщики Java EE серверов приложений могут предоставлять дополнительные возможности, к примеру, кластеризация, балансировка нагрузки, широкий спектр инструментов мониторинга и анализа выполнения и другие.
Ресурсы:
- JSR 244: JavaTM Platform, Enterprise Edition 5 (Java EE 5) Specification
- Java EE серверы приложений, которые полностью соответствую Java EE 5 спецификации
Все про українське ІТ в телеграмі — підписуйтеся на канал DOU
