Java ee — Выбор языка для реализации проекта(PHP & Java)


Содержание

Часть 1. Java EE. Интеграция Tomcat 8 и NetBeans 8.2 и создание проекта Hello World

�� 6 262 просмотров

Java EE(Java Platform, Enterprise Edition) — это платформа и набор спецификаций языка Java для серверных проектов на уровне средних и крупных предприятий.

Основное назначение данной платформы — это реализация процессов сетевого обмена информацией через Интернет. Это свободная платформа со свободными программными и инструментальными средствами разработки.

В данной статье будет подробно описано как создать свой первый проект на платформе Java EE.

Что потребуется?

Нам потребуются для этого 3 шага:

  • установить требуемое ПО;
  • интегрировать скачанное ПО;
  • создать проект и развернуть на сервере.

Установка требуемого ПО

Нам потребуется скачать и установить следующий перечень ПО:

  • Tomcat 8 — сервер для запуска проекта Java EE;
  • IDE NetBeans — для создания и развертывания проекта Java EE;
  • Дополнительные модули для NetBeans для поддержки создания проектов JavaME.

Tomcat 8 скачивается с официального сайта Apache. Есть разные варианты установки, это инсталлятор с пошаговой установкой и архив программы, не требующий инсталляции. Мы скачаем инсталлятор и проследуем подсказкам. После скачивания запускаем инсталлятор, жмем «Next», далее соглашаемся с лицензией и жмем «I Agree» и появится окно

Оставляем все по умолчанию. Если кратко, то «Host Manager» — это менеджер проектов, который помогает развертывать и удалять проекты с сервера Tomcat через браузер. Нам он не нужен, не будем устанавливать, также, и примеры, пример мы сами создадим. Жмем «Next»

В данном окне нам необходимо придумать логин и пароль для нашего сервера, а в пункте «Roles» задать роли для пользователя. По умолчанию там стоит manager-gui и мы добавляем к нему, через запятые, еще две роли: manager-script и manager-admin. Они нам будут необходимы при интеграции с NetBeans, остальное оставляем как есть и жмем «Next» появится окно выбора папки Java -машины, если Tomcat нашел эту папку, у меня она находится по пути «C:\Program Files\Java\jre1.8.0_45», то оставляем, если нет, то выбираем. Жмем «Next» и выйдет окно выбора папки установки, я оставил по умолчанию «C:\Program Files\Apache Software Foundation\Tomcat 8.0». Жмем «Next» и пойдет процесс установки

После окончания оставляем галочку «Run Apache Tomcat» для запуска, а с «Show Readme» снимаем, жмем «Finish» и начнется запуск сервера. Мы можем в любой момент остановить и запустить сервер через Monitor Tomcat, который будет доступен трее в процессе запуска

Если сервер запущен, то на значке будет зеленый треугольник, а если остановлен — красный. Если мы вышли из монитора нажав на пункт Exit, то сможем заново запустить через «Пуск» в категории «Apache Tomcat 8.0 Tomcat8»

На данный момент с Tomcat закончили. Переходим к следующей программе.

IDE NetBeans скачиваем с официального сайта NetBeans. При скачивании выбираем PHP — конфигурации с минимальным количеством модулей, остальные мы сам установим

После скачивания запускаем инсталлятор и следуем подсказкам, оставляя все по умолчанию, если у вас нет других требований.

Все, программы мы установили. Теперь запускаем NetBeans и устанавливаем необходимые модeли для разработки проектов Java EE. Для этого заходим в пункт меню «Tools» > «Plugins»

И в открывшмся диалоговом окне, в раскладке доступных модулей «Available Plugins» выбираем все модули с с категориями Java EE и Java WEB and EE

Жмем «Install», соглашаемся со всеми лицензиями и подтверждаем установки. После окончания NetBeans предложит перезагрузиться -соглашаемся и все, мы можем, теперь, через меню создавать стандартные проекты Java EE.

Интеграция Tomcat и Netbeans

В NetBeans, для того, чтобы посмотреть текущие активные серверы, нам необходимо открыть вкладку сервисов. Для этого переходим в пункт меню «Window» > «Services»

После этого откроется новая вкладка сервисов, где в пункте «Servers» мы увидим наш активный сервер Tomcat

При при попытке развернуть пункт «Web Applications» выйдет диалоговое окно, которое потребует с нас логин и пароль. Вводим логин и пароль, которые мы устанавливали в процессе установки Tomcat

и мы увидим все текущие, развернутые, проекты, которые есть у нас на сервере.

На этом все, интеграция закончена. Далее создаем проект Java EE «Hello World».

Создаем проект развертываем на сервере

Идем в меню «File» > «New Project…»

Выбираем тип проекта из категории «Java Web» > «Web Application» и жмем «Next»

Задаем имя проекта и жмем «Next»

Выбираем наш сервер, версию Java EE и жмем «Finish», так как фреймфорки мы не будем использовать для нашего простого примера.

Структура проекта состоит из нескольких папок

В папке «Web Pages» будут храниться фронтенд — файлы: html, JavaScript, CSS…в папке «META-INF» могут храниться дополнительные библиотеки, в папке «WEB-INF» могут храниться файлы конфигурации. При развертывании проекта сюда, обычно добавляется конфигурационный файл web.xml с дополнительными параметрами обработки запросов. Папке «Source Packages» буде наш Java EE — код, который будет обрабатывать запросы.

Давайте добавим новый пакет «helloworld» с классом «HelloWorld.java» в папке исходников «Source Packages». Кода класса дан ниже

В папку «META-INF» добавляем фал конфигурации web.xml со следующим содержимым

Данный код сообщит нашему серверу, чтобы при обращении к странице http://localhost:8080/hello/ у нас был выполнен Java — код из класса HelloWorld.java.
Давайте, изменим и код файла index.html для наглядности перепишем его содержимое так

index.html будет запрошен по умолчанию при обращении к странице через обычный адрес http://localhost:8080/HelloWorld/, так как мы задали это правило через web.xml. В итоге наш проект получится вот таким

Проект готов, нам осталось его построить, развернуть и запустить. Для этого наводим мышкой на имя проекта и ЛКМ

выбираем сначала пункт «Build», потом «Deploy», что значит «Развернуть», потом «Run» и среда запустит страницу в браузере через адрес http://localhost:8080/HelloWorld/. По умолчанию у нас запуститься index.html, так как мы еще задали еще одну страницу http://localhost:8080/HelloWorld/hello/ через web.xml, который обрабатывает созданный нами класс, то давайте взглянем и на ее результат

Как видим, все отлично работает и код Java запускается через наш сервер, выводя HTML — код в виде страницы.

Дистрибутив сервлета «*.war» и развертывание вне среды NetBeans

Выше мы описали как развернуть проект внутри среды IDE NetBeans, это удобно в процессе проектирования, но что, ели нам требует закинуть на сервер Tomcat уже готовый проект? Давайте рассмотрим это поподробнее. Когда мы строим проект через команду «Build», то NetBeans создает конечный файл — дистрибутив, который является законченной реализацией проекта. Данный дистрибутив доступен в 2-х видах в 2-х папках проекта, это:

Высоконагруженные проекты: Java vs php

Устраиваемся поудобнее. Итак, вопрос сплошь теоретический, и, я надеюсь, он не станет предметом холивара.

Представьте, что в один прекрасный день Вам предлагают возглавить разработку масштабного и очень дорогого проекта — потенциально имеющего все перспективы догнать Facebook или ВКонтакте. Но учитывая некоторые известные нюансы, например, что ФБ транслирует php в высоко оптимизированный код C++, а затем компилирует, — поставлена задача, — выбрать наиболее оптимальный вариант, который сводит к минимуму такого рода костыли над нативным языком или не предусматривает их в принципе; в идеале же, вся серверная логика и примитивная генерация страниц должна быть только на одном ЯП — без каких-либо ухищрений.

В рамках данного предложения для рассмотрения допускаются два языка: Java и php (т.к именно последний используется в вышеперечисленных проектах, а первый, скажем, рекламирует себя в качестве энтерпрайза).

Конечно же все плюсы php в сегменте мелкого сайтостроения (блоги, форумы, etc) нам всем хорошо известны — и оспаривать их мы не подумаем; так давайте же рассматривать только очень тонкие уголки: обговариваем сразу со стороны возможностей извращённо-сложных уникальных решений и хайлоада в целом. Вопросы экономического целесообразия можно опустить на задний план, т.к инвесторы Уоррен Баффет и Билл Гейтс выделили нам, ну скажем, достаточное количество средств, чтобы можно было забыть о проекте и потеряться в другой стране, — но мы не такие, поэтому давайте разведем диванную теоретику. :)

Начало работы с приложениями Java EE

В этом документе содержится краткое описание некоторых возможностей, добавленных в спецификацию Java Enterprise Edition 6 (Java EE 6). В качестве иллюстрации новых возможностей в этом учебном курсе используется пример создания простого веб-приложения Java EE, содержащего фасад компонента сеанса без сохранения состояния EJB 3.1 для класса сущностей. Для создания класса сущностей и сеансного компонента в среде IDE используются мастеры. В созданном мастером коде используются запросы, определенные в интерфейсе Criteria API, который является частью JPA 2.x и входит в состав спецификации Java EE 6. Затем создается управляемый компонент с именем, имеющий доступ к фасаду сеанса и уровню представления, на котором используется инфраструктура вида Facelets, как указано в спецификации JSF 2.x.

Этот учебный курс основан на публикации в блоге Простейший из возможных компонентов JSF 2 / EJB 3.1 / JPA — с развертыванием WAR (автор Адам Бьен (Adam Bien)). Дополнительные примеры по Java EE examples доступна в проекте Адама Бьена по Kenai Шаблоны и испытанные приемы Java EE и в его книге «Шаблоны Java EE в реальном мире — обдумывая заново проверенные приемы», которая доступна на http://press.adam-bien.com.

Упражнения по темам руководства

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Программное обеспечение или материал Требуемая версия
IDE NetBeans Версия 7.2, 7.3, 7.4, 8.0, Java EE
Комплект для разработчика на языке Java (JDK) версия 7 или 8
GlassFish Server Open Source Edition 3.1.2.2 3.x, 4.x

Предполагается, что читатель обладает базовыми знаниями по следующим технологиям или опытом программирования с их использованием:

Создание проекта веб-приложения

В этом упражнении создается простое веб-приложение. При создании веб-приложения укажите в качестве целевого контейнера Java EE сервер GlassFish. Сервер GlassFish совместим с Java EE и включает в себя библиотеки JSF 2.x, необходимые для этого приложения.

В мастере создания проектов в качестве версии Java EE можно выбрать Java EE 6 Web или Java EE 7 Web. Java EE 6 Web и Java EE 7 Web являются упрощенными профилями Java EE 6, которые содержат подмножество полной платформы Java EE. Профили Java EE Web разработаны для веб-приложений, не требующих расширенных технологий Java EE, таких как поддержка удаленных интерфейсов, полная спецификация EJB 3.1 и API-интерфейс службы передачи сообщений Java (JMS).

Веб-профили поддерживают обработку транзакций и управление сохранением состояния, которые часто используются в корпоративных веб-приложениях. Профили Java EE Web можно использовать для веб-приложений, в которых применяются компоненты сеансов с локальным интерфейсом или без интерфейса. При использовании в приложении удаленного интерфейса необходим полный профиль Java EE.

  1. Выберите ‘Файл’ > ‘Создать проект’ (Ctrl-Shift-N; ⌘-Shift-N в Mac) в главном меню.
  2. Выберите «Веб-приложение» из категории «Java Web» и нажмите кнопку «Далее».
  3. Введите SimpleEE6App в качестве имени проекта и укажите местоположение проекта.
  4. Снимите флажок «Использовать отдельную папку», если он установлен. Нажмите кнопку «Далее».
    (В рамках этого руководства копирование библиотек проекта в отдельную папку нецелесообразно, поскольку совместное использование библиотек с другими пользователями или проектами не требуется.)
  5. Выберите сервер GlassFish и укажите Java EE 6 или Java EE 7 в качестве версии Java EE. Нажмите кнопку «Далее».
  6. Выберите в панели «Платформы» JavaServer Faces. Нажмите кнопку «Завершить».

По умолчанию при разработке веб-приложения Java EE, развертываемого на сервере GlassFish, в среде IDE будет выбрана библиотека JSF 2.x. Версия используемой по умолчанию библиотеки JSF зависит от версии, поставляемой в комплекте с сервером GlassFish. Библиотека JSF 2.x позволяет использовать Facelets в качестве языка страниц и обеспечивает поддержку JSF 1.2 и JSP.

При нажатии кнопки «Завершить» проект будет создан в среде IDE, который откроется в окне «Проекты». В среде IDE автоматически создается и открывается в редакторе страница index.xhtml.

Создание класса сущностей и фасада сеанса

В этом разделе будет создан класс сущностей и фасад сеанса для класса сущностей. Класс сущностей – это простой старый объект Java (Plain Old Java Object, POJO), простой класс Java, идентифицированный аннотацией @Entity как сущность. Начиная со спецификации Java EE 5 классы сущностей можно использовать в качестве объектов с сохраняемым состоянием для представления таблиц в базе данных. Интерфейс Java Persistence API позволяет использовать сохранение состояния в веб-приложениях без необходимости создания модуля EJB.

Фасад сеанса для класса сущностей в этом приложении является сеансным компонентом без сохранения состояния. Архитектура Enterprise JavaBean (EJB) 3.1, представленная как часть спецификации Java EE 6, позволяет создавать компоненты сеансов без бизнес-интерфейсов, которые требовались в EJB 3.0. Спецификация Java EE 6 также допускает упаковку компонентов EJB напрямую в архив WAR. Благодаря этому упрощается разработка небольших приложений за счет исключения необходимости создания отдельных модулей EJB, которые запаковываются как архив JAR в архив EAR. Однако для больших приложений J2EE, которые распределяются на разных машинах, остается необходимость в создании архивов EAR для отделения бизнес-логики от уровня представления.

Подробные сведения об использовании EJB 3.1 в среде IDE приведены в учебном курсе Создание приложения J2EE с помощью EJB 3.1.

Дополнительные сведения о компонентах сеансов см. в главе Что такое компонент сеанса? в Руководстве по Java EE 7.

Создание класса сущности

В этом упражнении с помощью мастера создания класса сущностей будет создан простой класс сущностей с сохраняемым состоянием. Также будет описан мастер создания блока сохранения состояния, которая определяет источник данных и диспетчер сущностей, используемые в приложении. Будет добавлено одно поле в класс для представления данных в таблице и созданы методы получения и установки для нового поля.

Класс сущностей должен иметь первичный ключ. При создании класса сущностей с помощью мастера в среде IDE по умолчанию создается поле id и создается аннотация @Id для объявления этого поля в качестве первичного ключа. Также в среде IDE добавляется аннотация @GeneratedValue и указывается стратегия создания ключей для первичного поля id.

Использование в проекте интерфейса Java Persistence значительно упрощает разработку приложения в силу отсутствия необходимости настройки дескрипторов развертывания для определения информации относительно объектно-реляционного сопоставления для сохраняющих состояние полей или свойств. Вместо этого можно использовать аннотации для определения этих свойства непосредственно в простом классе Java.


Сохранением состояния объекта управляет интерфейс API EntityManager. Интерфейс API EntityManager обрабатывает контекст сохранения состояния, а каждый контекст сохранения состояния представляет собой группу экземпляров объекта. При разработке приложения для обозначения экземпляра контекста с сохранением состояния для классов сущностей к классу можно добавить аннотации. В дальнейшем жизненный цикл экземпляров объекта управляется контейнером.

Для создания класса сущностей выполните следующие действия.

  1. Щелкните узел проекта правой кнопкой мыши и выберите команду «Создать» > «Другие».
  2. Выберите «Класс сущностей» в категории «Сохранение состояния». Нажмите кнопку «Далее».
  3. В поле «Имя класса» введите Message.
  4. В поле «Пакет» введите entities.
  5. Выберите команду «Создать блок сохранения состояния». Нажмите кнопку «Далее».
  6. Выберите источник данных (например, выберите jdbc/sample, если необходимо использовать JavaDB).

Источник данных для jdbc/sample находится в составе пакета среды IDE при установке среды IDE и сервера приложений GlassFish. Однако можно указать другой источник данных, если это необходимо.

Можно сохранить другие параметры по умолчанию (имя блока сохранения состояния, поставщик сохранения состояния EclipseLink). Убедитесь в том, что для блока сохранения состояния используется интерфейс API транзакций Java и что для стратегии создания таблиц установлено значение «Создать», т. е. таблицы на основе классов сущностей создаются при развертывании приложения.

В мастере создания блока сохранения состояния нажмите кнопку «Завершить».

При нажатии кнопки «Завершить» в среде >

  • В редакторе добавьте поле message (выделено полужирным шрифтом) под полем id.
  • Щелкните правой кнопкой мыши в редакторе и выберите команду «Вставить код» (Alt-Insert; Ctrl-I для Mac), а затем «Получение и установка».
  • В диалоговом окне «Создание методов получения и установки» выберите поле message и нажмите кнопку «Создать».

    В среде IDE будут созданы методы получения и установки для поля message.

    Класс сущностей представляет собой таблицу в базе данных. При запуске этого приложения автоматически будет создана таблица базы данных для сообщения. Таблица будет состоять из столбцов id и message.

    Если проанализировать блок сохранения состояния в редакторе XML, можно увидеть, что в приложении используется интерфейс API транзакций Java (JTA) (transaction-type="JTA"). Это указывает на то, что управление жизненным циклом сущностей в контексте сохранения состояния осуществляется контейнером. В результате требуется меньше строк кода, так как жизненный цикл сущностей управляется контейнером, а не приложением. Подробные сведения об использовании JTA для управления транзакциями приведены в документации по интерфейсу Java Transaction API.

    Создание фасада сеанса

    В этом упражнении будет использоваться мастер создания фасада сеанса без сохранения состояния для сущности Message. Согласно спецификации EJB 3.1. теперь бизнес-интерфейсы для сеансных компонентов не являются обязательными. В этом приложении, где клиент, имеющий доступ к компоненту, является локальным клиентом, для отображения компонента существует возможность использования представления с локальным интерфейсом или без интерфейса.

    Для создания сеансного компонента выполните следующие шаги.

    1. Щелкните узел проекта правой кнопкой мыши и выберите команду «Создать» > «Другие».
    2. Выберите «Сеансные компоненты для сущностных классов» из категории Enterprise JavaBeans. Нажмите кнопку «Далее».
    3. Выберите сущность Message и нажмите кнопку «Добавить». Нажмите кнопку «Далее».
    4. В поле «Пакет» введите boundary. Нажмите кнопку «Завершить».

    Обратите внимание на то, что создавать бизнес-интерфейс для сеансного компонента не требуется. Вместо этого в данном приложении компонент будет отображаться для локально управляемого компонента в представлении без интерфейса.

    Когда вы нажмете «Готово», среда IDE создаст фасадный класс сеансаMessageFacade.java и AbstractFacade.java и откроет файлы в редакторе. Как вы увидите в созданном коде, аннотация @Stateless используeтся для объявления MessageFacade.java сеансным компонентом без состояния. MessageFacade.java является расширением AbstractFacade.java, который содержит бизнес-логику и управляет транзакцией.

    При создании фасада для сущности с помощью мастера в среде )) для внедрения ресурса диспетчера сущностей в элемент сеансного компонента и для определения имени блока сохранения состояния. В этом примере имя блока сохранения состояния объявлено явно, но имя не является обязательным, если в приложении используется только один блок сохранения состояния.

    Среда IDE также создает методы в AbstractFacade.java для создания, изменения, удаления и нахождения сущностей. В интерфейсе API EntityManager определяются методы взаимодействия с контекстом сохранения состояния. Как видите, среда IDE генерирует некоторые распространенные методы запросов, используемые по умолчанию, которые можно использовать для нахождения объектов сущностей. В методах findAll, findRange и count используются методы, определенные в интерфейсе API Criteria для создания запросов. API-интерфейс Criteria входит в спецификацию JPA 2.x, которая в свою очередь является частью спецификации Java EE 6.

    Создание управляемого компонента JSF и страниц JSF

    В этом разделе представлена информация о том, как с помощью JavaServer Faces (JSF) 2.x создать уровень представления для приложения и управляемый базовый компонент, используемый на страницах JSF. Спецификация JSF 2.x делает возможным использование Facelets в качестве предпочтительной технологии представлений для приложений на основе JSF. Начиная с версии JSF 2.x можно использовать аннотацию @ManagedBean в исходном коде для объявления класса управляемого компонента. Для объявления управляемых компонентов JSF больше не требуется добавлять записи в файл faces-config.xml. Для получения доступа к методам в управляемом компоненте можно использовать имена компонентов на страницах JSF.

    Подробные сведения о поддержке спецификации JavaServer Faces 2.x в среде IDE см. в разделе Поддержка JSF 2.x в IDE NetBeans.

    Подробные сведения о спецификации JavaServer Faces 2.x см. в главе Технология JavaServer Faces учебного курса по Java EE 7.

    Создание управляемого компонента

    В этом упражнении будет создан простой управляемый компонент JSF, используемый для получения доступа к фасаду сеанса. Спецификация JSF 2.x позволяет использовать аннотации в классе компонента для определения класса как управляемого компонента JSF, а также указания области и имени компонента.

    Для создания управляемого компонента выполните следующие шаги.

    1. Щелкните узел проекта правой кнопкой мыши и выберите команду «Создать» > «Другие».
    2. Выберите «Управляемый компонент JSF» из категории «JavaServer Faces». Нажмите кнопку «Далее».
    3. В поле «Имя класса» введите MessageView.

    Имя управляемого компонента MessageView используется в качестве значения для inputText и commandButton на странице JSF index.xhtml при вызове методов в компоненте.

  • В поле «Пакет» введите my.presentation.
  • В поле «Имя», используемое для управляемого компонента, введите MessageView.

    Примечание. При создании управляемого компонента с помощью мастера, IDE по умолчанию назначает имя компоненту на основе имени класса компонента, при этом имя будет начинаться с маленькой буквы. В данном руководстве и для демонстрационных целей вы назначаете базовому элементу имя, начинающееся с заглавной буквы. При ссылке на компонент на страницах JSF вы будете использоватьMessageViewвместо messageView. Если вы не назначали имени, то на странице JSF будет использоваться по умолчаниюmessageView.

  • Установите контекст для запроса. Нажмите кнопку «Завершить».
  • При нажатии кнопки «Готово» в среде IDE создается класс компонента, который затем открывается в редакторе. В окне ‘Проекты’ отобразятся следующие файлы.

    В редакторе можно увидеть, что в среде IDE добавлены аннотации @ManagedBean и @RequestScoped и имя компонента.

    Теперь добавляем аннотацию @EJB для использования учета зависимостей, чтобы получить ссылку на сеансный компонент MessageFacade. Вы также будете вызывать методы findAll и создавать, отображаемые на фасаде. Автозавершение кода среды IDE помогает при вводе методов.

    1. Щелкните правой кнопкой мыши в редакторе и выберите команду «Вставить код» (Alt-Insert; Ctrl-I для Mac), затем во всплывающем окне выберите «Вызов компонента EJB».
    2. В диалоговом окне «Вызов компонента EJB» выберите MessageFacade. Нажмите кнопку «ОК».

    При нажатии кнопки «ОК» в среде IDE добавляется следующий код (выделено полужирным шрифтом) для ввода компонента.

  • Для создания нового экземпляра добавьте следующий код.
  • Добавьте следующий код к классу.
  • Щелкните правой кнопкой мыши в области редактора и выберите команду ‘Исправить операторы импорта’ (Alt-Shift-I; ⌘-Shift-I в Mac) и сохраните изменения.
  • Можно использовать автозавершение кода в редакторе, упрощающее ввод кода.

    Обратите внимание, что метод postMessage возвращает строку «theend». Спецификация JSF 2.x допускает использование правил неявных переходов в приложениях, использующих технологию Facelets. В таком приложении правила переходов не настраиваются в faces-config.xml. Вместо этого обработчик переходов пытается найти подходящую страницу в приложении. В этом случае обработчик переходов пытается найти страницу с именем theend.xhtml при вызове метода postMessage.

    Изменение страницы-указателя

    В этом упражнении будет выполнено несколько простых изменений страницы index.xhtml для добавления компонентов пользовательского интерфейса. Выполняется добавление формы с текстовым полем для ввода и кнопкой.

    1. Откройте в редакторе index.xhtml.
    2. Измените файл для добавления следующей простой формы между тегами .

    Автозавершение кода JSF может помочь при вводе кода.

    Примечание. При копировании и вставке кода в файл отображается предупреждение на левом поле рядом со строков, содержащей . Вы можете поместить курсор вставки на строку и нажать сочетание клавиш Alt-пробел для открытия подсказки по исправлению ошибки. Отображается подсказка о том, что требуется добавить объявление библиотеки xmlns:f="http://xmlns.jcp.org/jsf/core".

    Компоненты inputText и commandButton вызывают методы в управляемом компоненте JSF с именем MessageView. Метод postMessage возвращает «theend», а обработчик переходов выполняет поиск страницы с именем theend.xhtml.

    Создание страницы результатов

    В этом упражнении будет создана страница JSF theend.xhtml. Эта страница будет отображаться при нажатии пользователем кнопки «Отправить сообщение» в index.xhtml и при вызове метода postMessage в управляемом компоненте JSF.

    1. Щелкните узел проекта правой кнопкой мыши и выберите команду «Создать» > «Другие».
    2. В категории «JavaServer Faces» выберите «Страница JSF». Нажмите кнопку «Далее».
    3. В поле «Имя файла» введите theend.
    4. Убедитесь в том, что флажок «Facelets» установлен. Нажмите кнопку «Завершить».
    5. Измените файл посредством ввода следующего кода между тегов .

    Когда вы начинаете вводить данные, среда в файл для элементов JSF.

    Запуск приложения

    Кодировка приложения завершена. Теперь можно протестировать приложение в браузере.

      Щелкните правой кнопкой мыши узел проекта в окне «Проекты» и выберите «Выполнить».

    При выборе команды «Выполнить» в среде IDE происходит сборка и развертывание приложения, и в браузере открывается index.xhtml.

  • Введите сообщение в текстовое поле. Нажмите кнопку «Отправить сообщение».
  • При нажатии кнопки «Отправить сообщение» сообщение сохраняется в базе данных, и извлекается и отображается число сообщений

    Загрузка проекта решения

    Простые проекты, используемые в этом руководстве, можно загрузить следующими способами.


    • Загрузите архив завершенного проекта в формате zip.
    • Выполните проверку исходных файлов проекта на выходе из примеров NetBeans, выполнив перечисленные ниже действия.
      1. Выберите в главном меню «Группа > Subversion > Проверить».
      2. В диалоговом окне «Проверка» введите следующий URL-адрес репозитория:
        https://svn.netbeans.org/svn/samples

    samples-source-code
    Нажмите кнопку «Далее».

  • Нажмите кнопку Browse («Обзор») для открытия диалогового окна Browse Repository Folders («Обзор папок репозитория»).
  • Разверните корневой узел и выберите samples/javaee/SimpleEE6App. Нажмите кнопку «ОК».
  • Укажите локальную папку для исходных файлов (папка должна быть пустой).
  • Нажмите кнопку «Завершить».

    После нажатия кнопки «Готово» среда IDE инициализирует локальную папку в качестве репозитория Subversion и выполняет проверку исходных файлов проекта на выходе.

  • Щелкните команду «Открыть проект» в диалоговом окне, которое появится после завершения проверки.
  • Примечания.

    • Для получения исходных файлов на редактирование требуется клиент Subversion. For more about installing Subversion, see the section on Setting up Subversion in the Guide to Subversion in IDE NetBeans.

    Дополнительные сведения

    For more information about using IDE NetBeans to develop Java EE applications, see the following resources:

    Подробные сведения об использовании технологий Java EE для развертывания приложений см. в Учебном курсе по Java EE 7.

    To send comments and suggestions, get support, and keep informed on the latest developments on the IDE NetBeans Java EE development features, join the nbj2ee mailing list.

    Java убьет ваш стартап. PHP спасёт его.

    Так, всем спокойно. Это не очередной диспут на тему что лучше PHP, Java или ваш любимый язык. Я хочу поговорить о корпоративных технологиях, например Java Enterprise, и о том, как они могут похоронить ваш интернет-стартап или малый/средний веб-бизнес. Более того, речь идет о серьёзных технология вроде PHP (или Ruby, Python, Perl и т.д.), которые могут спасти его и поднять на новый уровень. Я мог бы взять любые два языка или технологии. Я попросту выбрал два самых-самых, чтобы донести суть, и немного потроллить вас.

    Это не технический отчёт для технических специалистов, а комментарии о бизнес-деятельности (для не технических специалистов), о том, что нужно молодому, малому/среднему веб-бизнесу и что в конце концов может его погубить.

    Все что нужно малому веб-бизнесу, неважно, насколько большим вы его представляете, так это LAMP. Для тех, кто не в курсе LAMP — это акроним, который определяет операционную систему, веб-сервер, базу данных и язык программирования. В этом случае Linux, Apache, MySQL, и PHP. Допустим вы основатель бизнеса или старший руководитель (не технического отдела), и вы полагаетесь на советы других, касательно технологий. Тогда, вероятно о LAMP (особенно о PHP и MySQL) вы слышали следующее: это не совсем современно, не достаточно хорошо, “слишком просто” и вы не получите той производительности, которую ожидаете. Это полный бред. Факты:

    • Самые крупные интернет-магазины, соц. сети, wiki-сайты основаны на PHP (или схожих) и его до сих пор широко используют. Включая Amazon, Facebook, и Wikipedia. Более 80% топовых сайтов с аудиторией >10 миллионов используют PHP.
    • У PHP огромная доля рынка и число пользователей, более чем 10:1 относительно Java (сейчас мы говорим только о веб-приложениях, а не о программировании в целом).
    • PHP-программистов больше и они дешевле чем Java-программисты.
    • У PHP отличная производительность и становится она только лучше. На деле, он с легко конкурирует с компилируемыми языками.
    • Вывод PHP приложения на рынок занимает меньше времени чем Java EE приложений.
    • PHP не «скриптовый» язык (что бы это ни значило), это мощный, полнофункциональный, объектно-ориентированный язык.
    • PHP 7.x существенно лучше предыдущих версий, а PHP 8.0 обещает превзойти все ожидания.
    • Богатые и мощные фреймворки. Популярность, мощь и доминирование Symfony и Laravel неоспоримо.
    • WordPress (соданный на PHP) доминирует на рынке CMS с долей почти 60%. Следующие из топ 5 CMS также работают на PHP. Факт: в 2020/2020 годах частной кампанией номер один из Техаса стала WP Engine, которая сейчас весьма влиятельна в мире CMS.
    • PHP создан для веб. Никаких дополнительных серверов, процессоров, хаков, уловок не нужно. Он буквально един с вашим сервером.
    • WooCommerce, Magento, OpenCart, PrestaShop, ZenCart, Drupal, Joomla, OsCommerce и так далее… всё это PHP. Только Magento и WooCommerce, захватили треть рынка интернет-магазинов.

    Кроме этих фактов, каждый не технический предприниматель и руководитель, должен понимать следующее о языках, корпоративных решениях и разработке…

    Проектирование! Архитектура и проектирование системы куда важнее чем выбор языка или чего-либо еще. Бесполезно выбирать «правильный» язык или технологию если у вас плохо спроектированная система. Java — компилируемый язык (от части) и как таковой быстрей чем PHP. Но на практике, в вебе, PHP быстрее (как правило). Потому что PHP создан для веб. Фреймворки PHP спроектированы для корпоративных веб решений. Корпоративное решение — это прежде всего архитектура, а не технологии и языки. Когда кто-то навязывает вам язык (например Java), без полной оценки и обсуждения архитектуры — это похоже на покупку дома, которого вы никогда не видели, только потому что его строили с помощью самого лучшего молотка (или кувалды, в случае с Java EE).

    Язык — это инструмент. Инструмент вы выбираете для работы. А архитектуру и проект для своей конечной цели. Язык — это инструмент. Вот и всё. Говорить, что язык не корпоративный всё равно что сказать: «молотком нельзя строить небоскрёб, потому что им строят дома». Я слышал немало заблуждений в духе MBA (степень магистра в менеджменте) вроде: « PHP годится разве что для семейного бизнеса». Нет. Слабый проект сгодится для семейного бизнеса. PHP отлично работает в умелых руках того кто знает как проектировать корпоративные решения. У PHP нет ограничений, которые препятствуют этому, а в случае с веб — у PHP есть много преимуществ перед другими языками.

    Если вы сосредоточитесь на инструментах, вместо архитектуры — это закончится тем, что вы будете забивать гвозди тараном (Java), когда молоток (PHP) был бы более уместным. Также, вы быстро потеряете деньги, инвестируя в инструменты и персонал, которые не нужны. Если вы хотите построить небоскреб, то проектируйте небоскреб. Сильные корпоративные решения зависят от хорошей архитектуры и проектирования, а не конкретного языка.

    Будьте проще. Что бы вывести бизнес идею на рынок, вам нужно простое, быстрое и недорогое решение, которое будет работать сейчас и масштабироваться позже. Лишнее может навредить и привести к плачевным результатам. Если у вас не будет сайта размером с Amazon буквально в тот момент, когда вы только начинаете, то лучшим решением будет сильная архитектура и PHP (или аналог) в среде LAMP, а не чудовищное раздутое решение Java Enterprise.

    Учитывайте масштабируемость, но масштабируйте позже. Не слушайте, если вам советуют сразу начать использовать инструменты, которые понадобятся, когда вы дорастете до масштабов Amazon или Facebook (оба кстати широко используют PHP и похожие языки). Что вам нужно сейчас, так это хорошее проектирование, простота и недорогие инструменты. Если вы все сделаете правильно при проектировании, то легко масштабируетесь позже. Facebook запускали на PHP, и он до сих пор его использует, и похоже, что всё превосходно масштабируется. Wikipedia тоже на PHP, и с этим у них тоже все в порядке.

    Необходимые действия для учредителей и предпринимателей, без технических навыков, запускающих веб-бизнес…

    Прежде всего вкладывайте деньги в архитектуру. Избегайте нанимать заурядных программистов или приятеля вашего племянника, который «хорошо разбирается в компьютерах». Ищите хорошо обученного профессионала в области компьютерных технологий, который сперва думает о проектировании и архитектуре, а только потом уже о языках. Ничто так не навредит вашему веб-сайту в долгосрочной перспективе, как разработчик, который начинает строчить код в первый же день. Сколько раз я слышал от проджект-менеджеров: « Он такой крутой разработчик!» . И когда я спрашиваю почему, они отвечают: «Он такой быстрый!». Сначала вы будете радоваться: « Вы посмотрите, какой он быстрый!». Но, спустя год вы будете тонуть в техническом долге, а тот «веб-волшебник» уже давно исчез и сейчас рушит мечты кого-то еще.

    Не переусердствуйте с технологиями. Я видел так много проблем в компаниях и проектах, которые начинали с командой Java Enterprise программистов, потому что кто-то «продал» им скорость Java и корпоративные возможности вместо того, чтобы уделить внимание реальной оценке ваших потребностей и ресурсов. В один местный стартап (я с ними общался) привлекли 14 Java программистов и персонал поддержки, чтобы запустить компанию. Они были уверены, чтобы конкурировать в корпоративной среде, им нужен Java. Команда такого размера обходится примерно в 2 миллиона долларов в год в США. У них не было такого бюджета, поэтому специалистов наняли в Индии всего за $100k в год (проигнорировав мой совет). Короче говоря, эта катастрофа длилась пять лет и стоила компании миллионы, а в итоге они получили раздутый, устаревший, бардак «корпоративного уровня». Ещё хуже, когда всё уже случилось, знаете какой новый (правильный) язык они выбрали для своего приложения? Python. Они так и не оправились. То, что им было нужно, можно было сделать с двумя хорошими LAMP (P значит Python в этом случае) разработчиками и одним сильным ведущим разработчиком/архитектором. Команда за $300k в год, которая смогла бы быстро вывести их продукт на рынок, так они смогли бы адаптироваться и развиваться.

    Отбирайте технических специалистов тщательно. Нет ничего важнее этого. За 20 лет работы в разработке ПО, я встречал гениальных программистов и бездарных. Они сидят рядом, работают над одним проектом, за одни и те же деньги. И ни один менеджер (без технической подготовки) не видит между ними разницы. Правда, и технические менеджеры тоже иногда не видят. Я встречал очень плохих программистов, которых называли «лучшими», только потому что они быстрые, а когда смотришь на их код, видишь бред, с которым невозможно работать. Если вы учредитель или руководитель без технической подготовки, и вам нужно набрать программистов — обратитесь за помощью. Человек, у которого следует консультироваться, должен иметь три квалификации без исключения: степень в области компьютерных наук, большой опыт на должности software engineer, и опыт руководителя команды разработчиков. Такие люди -проверенные технологи-практики. На меньшее не соглашайтесь. Не полагайтесь на технических рекрутеров и советчиков, которые разбираются в технологиях, но не написали ни строчки кода и не проектировали системы. Они могут убедительно говорить, но не стоит слушать их советов, если у них нет аккаунта на Github или Bitbucket наполненного кодом, и образования, чтобы подкрепить свои слова.

    На самом деле этот пост не о противостоянии Java и PHP (это просто кликбейт, чтобы привлечь ваше внимание), можете подставить сюда любые схожие технологии для рассуждений. Эта статья о том, что нужно прорваться сквозь заблуждения и сосредоточится на фундаментальных вещах, а не думать о колокольчиках, свисточках и блёстках. Не обрастать лишним и проектировать должным образом. Помните, если вы хотите забить гвоздь, можно использовать бульдозер и взрывчатку, но лучше взять молоток и хорошенько прицелиться.

    Введение в Java EE

    Что такое 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 вышла в сентябре 2020 года.

    В 2020 году произошла новая веха в развитии платформы: Oracle передал контроль над развитием Java EE организации Eclipse Foundation. А в апреле 2020 года Java EE была переименована в Jakarta EE .

    В начале 2020 года ожидается выход новой версии 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 или PHP!!

    Мне нужно для преподавания предмета выбрать язык програмированния, и дано два месяца на определение языка, а на его изучение полтора года. Думаю, что за этот период можно изучить. С++ мне не интересен, и изучать не интересное будет намного сложнее. Вот эти языки всеже связаны как то с созданием сайтов, вотмне это интересно. Думаю и дети будут заинтересованы. О языках программирования я не знаю ничего, но быстро обучаюсь, и вот сузила свой выбор до двух. Помогите опредлиться, только обоснованно.

    Мне нужно выбрать язык и среду програмирования, что б в дальнейшем готовить студентов к написанию дипломной работы по своей дисцеплине.

    Часть 1. Настройка Java-среды

    Серия контента:

    Этот контент является частью # из серии # статей: Разработка ПО при помощи технологий Java и PHP в AIX 5.3

    Этот контент является частью серии: Разработка ПО при помощи технологий Java и PHP в AIX 5.3

    Следите за выходом новых статей этой серии.

    PHP является ведущим языком для Web-разработки, а язык программирования Java™ широко используется при разработке бизнес-приложений, поэтому для использования сильных сторон каждого языка в ОС AIX® Version 5.3 был разработан мост PHP Java Bridge. Цель этого цикла статей — познакомить разработчиков приложений для AIX 5.3 с возможностями интегрирования технологий Java и PHP для создания интернет-приложений.


    Мы будем следовать перечисленным ниже типичным этапам разработки ПО и создадим простое приложение для анкетирования:

    • разработаем основное Java-приложение;
    • расширим Java-приложение до Web-приложения с помощью сервлетов Java;
    • добавим поддержку возможности хранения информации в базе данных;
    • представим исходное приложение в качестве Web-сервиса и создадим PHP-интерфейс к этому приложению;
    • повторно разработаем PHP-интерфейс с использованием специального компонента PHP Java Bridge.

    Этот цикл статей состоит из 6 частей:

    • Часть 1 рассматривает приложение и настраивает среду для создания Java-приложений и поддержки Java Web-приложений при помощи Tomcat.
    • Часть 2 охватывает основной код приложения и разработку простого Java-сервлета для предоставления Web-интерфейса к информации.
    • Часть 3 связывает основное приложение с базой данных DB2® для хранения запросов и ответов.
    • Часть 4 преобразует исходное приложение в приложение, доступ к которому осуществляется как к Web-сервису и которое являет собой основу PHP-интерфейса.
    • Часть 5 затрагивает создание PHP-интерфейса к Java-приложению при помощи PHP Java Bridge.
    • Часть 6 реконструирует приложение для использования PHP Java Bridge вместо интерфейса Web-сервиса.

    Совместное использование технологий PHP и Java

    Одна из распространенных проблем при разработке нового интерфейса к корпоративному приложению состоит в том, как разработать структуру решения. При переходе к Web-приложениям возникает искушение разработать Web-оболочку для существующего приложения, которая использует тот же язык и структуру приложения.

    Данная ситуация может вызвать проблемы для некоторых сред, поскольку развертывание Web-приложений может быть основано на абсолютно другой технологии, и во многих случаях преимущества выбранной среды не будут использоваться в полной степени.

    Те же проблемы могут возникнуть даже при разработке нового приложения: эксперты разработки Web-приложений пользуются средой, такой как PHP, а разработчики бизнес-приложений специализируются на Java-технологиях. Также полезно воспользоваться преимуществом гибкости, предоставляемой различными средами. PHP позволяет очень быстро создавать прикладные прототипы Web-приложений, а достаточно вольное комбинирование HTML-разметки и встроенных команд PHP позволяет легко разрабатывать Web-интерфейсы.

    Хотя Java-платформа полностью приспособлена для разработки Web-приложений, использующих Java Server Pages (JSP), а платформенно-зависимые решения (native solution), такие как Struts, приспособлены для развертывания объектов HTML, Java также часто используется для создания основной логики работы приложения в больших программных продуктах. Из-за сильной типизации и стандартизации внутри Java-платформы она часто оказывается более удобной для разработки сложных бизнес-приложений.

    Выход в том, чтобы применять подход, который позволяет использовать оба решения для различных частей приложения — основной логики работы программы и интерфейса взаимодействия с ней, используя технологии Java и PHP с интерфейсом между ними для обмена информацией.

    Не существует никакой удобной связи между технологиями Java и PHP, так как они являются двумя различными технологиями, использующими разную логику работы, двоичные файлы и среды развертывания. Единственным способом, благодаря которому можно заставить взаимодействовать обе системы, является применение сервис-ориенторованной архитектуры (Service-Oriented Architecture, SOA) и Web-сервисов для обмена информацией. В этом случае будет организовано взаимодействие с Java-приложением через набор Web-сервисов. PHP-приложение тогда будет работать как клиент Web-сервиса, предназначенного для взаимодействия с интерфейсами Web-сервисов Java-приложения.

    Другой альтернативой является применение PHP Java Bridge, который предоставляет прямой объектный интерфейс, позволяющий одновременно использовать Java- и PHP-код внутри одного приложения.

    В этом цикле статей и учебных курсов будет подробно объяснено, как можно разрабатывать Java-приложения для последующего расширения путем создания PHP-интерфейса к коду Java.

    Создание приложения для анкетирования

    В этом цикле статетй в качестве примера рассматривается создание простой системы анкетирования, которая задает ряд вопросов, собирает ответы, а затем осуществляет их статистический анализ.

    Логика приложения для реализации опросов запрограммирована на Java с использованием базового класса для анкетирования. Нами также будет создан один класс (который хранит основные данные по вопросам), который можно использовать в качестве родителя для других классов, реализующих поддержку ответов различных типов (множественный выбор, текстовая запись, рейтинг и прочее). Структура базового класса для анкетирования показана на рисунке 1.

    Рисунок 1. Основные классы приложения для анкетирования

    Для доступа к приложению через Web-интерфейс необходимо создать Java-сервлет, который расширяет исходные классы вопросов, поддерживает возможность вывода вопроса как HTML и получает ответы. Структуру этого элемента можно увидеть на рисунке 2.

    Рисунок 2. Расширение приложения для анкетирования до Web-сервиса на базе Java

    Поскольку полученную информацию надо хранить, необходимо создать такой интерфейс к базе данных DB2® и такое расширение для главного анкетирующего класса, чтобы полученные ответы можно было записывать в базу данных.

    Для создания PHP-интерфейса в системе необходимо адаптировать приложение при помощи Java так, чтобы оно работало как Web-сервис, к которому можно получить доступ из PHP-приложения для обеспечения альтернативного интерфейса. Финальным этапом является повторное развертывание приложения с использованием PHP Java Bridge для обеспечения максимума производительности системы.

    Для выполнения первых двух шагов — разработки основного приложения и последующего развертывания приложения как Java-сервлета — необходимо инсталлировать язык программирования Java и сервер Apache Tomcat — среду выполнения сервлетов Java. Начнем с инсталляции и настройки языка Java.

    Инсталляция языка программирования Java

    Необходимо инсталлировать Java Software Development Kit (SDK) версии 5 или более поздней, а также необходима среда разработки (а не выполнения), поскольку нужно будет скомпилировать исходный код Java в классы, требующиеся для работы базовой части тестового приложения.

    32-битная версия Java V1.4 SDK доступна на инсталляционном диске AIX Version 5.3, и, возможно, она уже установлена на используемой системе, поскольку она требуется для работы WebSM. Проверить это можно командой lslpp -L Java14.sdk . 64-битная версия Java 5 SDK доступна на сайте IBM developerWorks (см. раздел Ресурсы). Кроме того, что данный релиз SDK является более свежим, 64-битные приложения работают более эффективно на 64-битном аппаратном обеспечении с 64-битным ядром. Для установки:

    1. Загрузим файл Java5_64.sdk.tar.gz.
    2. Извлечем SDK при помощи команды gunzip -c Java5_64.sdk.tar.gz | tar -xvf — .
    3. Под учетной записью root установим, используя команду: installp -a -d Java5_64.sdk all .

    Или с помощью утилиты SMIT:

    1. Выполним smitt install.
    2. Выберем Install and Update Software.
    3. Выберем Install Software.
    4. Зададим полный путь к файлу, содержащему образ (например, /usr/local/src/Java4_64.sdk).
    5. Нажмем OK.
    6. Нажмем OK и SDK будет установлена.

    Инсталляция Tomcat

    Apache Tomcat предоставляет платформу для выполнения JSP. Apache Tomcat можно использовать для развертывания Java-приложений с использованием Web-интерфейса или для того, чтобы обеспечить работу Web-сервисов. В этом цикле статей технология Java будет использоваться сначала как платформа для Java-сервисов, а позже — как решение для разработки кросс-платформенного (Java и PHP) ПО.

    Возможно, Tomcat является самым простым компонентом системы для установки и развертывания. Поскольку Tomcat является Java-приложением, его легко инсталлировать и настроить после установки языка Java.

    Для установки Tomcat:

    1. Загрузим последнюю версию пакета программ Tomcat (см. раздел Ресурсы). На момент создания этой статьи самым последним стабильным релизом Apache Tomcat была версия 6.0.10.
    2. Распакуем модуль Tomcat используя tar и gunzip или unzip : $ gunzip -c apache-tomcat-6.0.10.tar.gz|tar xvf — .
    3. Переместим извлеченный каталог в место, где планируется установить Tomcat, но при этом не следует переименовывать каталог, который был создан. Например: $ mv apache-tomcat-6.0.10 /usr/local .
    4. Создадим символьную ссылку между фактическим каталогом и именем, которое будет использовать. Это позволит в будущем легко обновить Tomcat до последней версии: $ ln -s /usr/local/apache-tomcat-6.0.10 /usr/local/tomcat .

    Поскольку Tomcat является Java-приложением, не требуется никаких дальнейших дополнительных шагов для инсталляции или сборки. Итак, теперь мы можем инсталлировать и запустить Tomcat.

    Структура каталогов Tomcat

    Перед первым запуском сервера Tomcat необходимо проверить его конфигурацию, чтобы убедиться в том, что она соответствует используемой среде. До того как проверять конфигурацию, следует взглянуть на структуру главных каталогов системы Tomcat:

    Ключевые каталоги Tomcat:

    • Каталог bin содержит главные сценарии и приложения, которые контролируют и запускают Tomcat. Каталог содержит сценарии оболочки, платформенно-зависимые Windows®-приложения и командные файлы Windows. Для сценариев оболочки в этом каталоге необходимо выполнить команду chmod , чтобы убедиться в возможности запуска, остановки и управления Tomcat: $ chmod ugo+x bin/*.sh .
    • В каталоге conf находятся файлы, которые содержат конфигурационную информацию Tomcat. После первичной настройки Tomcat едва ли понадобится менять эти файлы, поскольку большую часть инсталляции и развертывания системы можно контролировать через Web-интерфейс Tomcat.
    • Каталог lib содержит библиотеки и Java-код, который составляет Java-систему.
    • Каталог logs автоматически создается Tomcat-сервером, когда тот устанавливается, и содержит файлы журналов сообщений (включая сообщения об ошибках).
    • Каталог temp автоматически создается Tomcat-сервером после его установки и содержит любые временные файлы.
    • Каталог webapps — место, куда надо устанавливать компоненты Web-приложения. Можно устанавливать JAR-файлы, WAR-файлы, файлы JSP, которые составляют приложение. По умолчанию в этом каталоге хранится документация, примеры и программы для управления системой Tomcat.
    • Каталог work содержит работающие компоненты выполняемого приложения и автоматически создается Tomcat во время его выполнения.

    Теперь давайте рассмотрим конфигурацию Tomcat, поскольку, возможно, придется скорректировать некоторые части конфигурации для соответствия Tomcat используемой среде.

    Конфигурация сервера Tomcat

    Для конфигурации различных функций предусмотрено большое количество опций, однако при стандартной инсталляции они обычно не используются.

    Тем не менее может понадобиться настроить некоторые ключевые элементы. По умолчанию Web-сервер работает на TCP/IP с номером порта 80, поэтому для предотвращения конфликтов Tomcat выполняется на порте с номером 8080, но на некоторых серверах этот порт может использоваться другим приложением, например Web-прокси.

    Можно изменить порт по умолчанию, который использует Tomcat, отредактировав файл conf/server.xml. Для этого необходимо найти блок Connector внутри службы Catalina : обычно он находится в первых 50 строках файла. Пример приведен в листинге 1 ниже.

    Листинг 1. Блок Connector

    Изменим значение параметра port на номер порта, который будет использовать Tomcat. При необходимости можно также настроить параметр redirectPort , который содержит номер порта, использующийся для соединений с Secure Sockets Layer (SSL). При изменении этого значения нужно убедиться, что вы соответствующим образом изменили спецификацию порта для SSL-соединения, как показано в листинге 2.

    Листинг 2. Изменение спецификации порта

    Если необходимо обеспечить поддержку сервиса на определенных хостах сервера, у которых нескольких сетевых интерфейсов или адресов, надо изменить соответствующий блок в файле. Данное изменение вносится дважды: сначала внутри тега Engine , а затем внутри выбранного тега Host , как показано в листинге 3.

    Листинг 3. Изменение настроек, связанных с именем хоста

    Необходимо сначала изменить defaultHost а затем изменить соответствующий параметр name .

    Другим файлом, на который следует обратить внимание, является conf/web.xml. Пока не нужно его редактировать, но будет неплохо ознакомиться с его содержанием, поскольку редактирование этого файла может понадобиться при настройке дополнительных приложений на Tomcat-сервере.

    Запуск Tomcat

    После того как Tomcat был инсталлирован и настроен, можно попробовать его запустить. Сначала убедимся, что значение переменной среды JAVA_HOME соответствует каталогу, в который была установлена Java-платформа. Если была установлена Java5_64, то место ее установки соответствует /usr/java5_64 (см. листинг 4).

    Листинг 4. Каталог инсталляции Java

    При желании можно явно определить путь к исполняемым файлам Java-платформы в переменной PATH, как показано в листинге 5.

    Листинг 5. Добавление Java-платформы к PATH

    В переменной среды PATH дополнительно можно указать путь к серверу Tomcat, чтобы было проще его обнаружить (см. листинг 6).

    Листинг 6. Назначение пути к Tomcat

    Теперь можно запускать Tomcat при помощи предусмотренных для этого сценариев оболочки. Сценарий запуска выводит конфигурационную информацию (см. листинг 7).

    Листинг 7. Сценарий запуска Tomcat

    Если были выведены сообщения о каких-то ошибках, то, возможно, понадобиться проверить более подробный файл журнала logs/catalina.out. Пример выводимых данных показан в листинге 8.

    Листинг 8. Журнал catalina.out

    Этот файл должен содержать более подробную информацию об ошибках в процессе запуска. Самой распространенной проблемой является конфликт портов с уже существующим сервисом или отсутствие Java-среды.

    Проверка установки

    Простейшим способом проверить инсталляции Tomcat является открытие страницы сервера Tomcat при его запуске. Если номер порта не был изменен и на сервере установлен браузер, то нужно открыть адрес: http://localhost:8080/ .

    Если Tomcat-сервер инсталлирован на другой машине или был изменен номер порта, тогда нужно заменить значения localhost и 8080 в примере выше. Например: http://192.168.0.170:8080/ .

    Пример результата этой команды показан на рисунке 3.

    Рисунок 3. Работающий сервер Tomcatt

    Заключение


    В этой статье были кратко рассмотрены проблемы, связанные с разработкой и развертыванием в AIX приложений, основанных на технологии PHP и Java, и некоторые решения, позволяющие интегрировать эти две технологии. Также было рассмотрено приложение с прикладной частью, реализованной на Java, и классами для поддержки различных операций, которые будут расширены через сетевые интерфейсы с использованием PHP. В следующей части этого цикла статей с помощью Java будет разработана основная логика приложения.

    Сравнение Java и PHP

    Здравствуйте, уважаемые посетители сайта Myrusakov.Ru! Как Вы знаете, недавно я запустил несколько новых видео курсов связанных с языком Java и поэтому сегодня я хотел бы с Вами поделиться некоторыми фактами, относительно различий и общих черт между Java и PHP.

    В первую очередь хочу обратить внимание на то, что особую популярность Java получила благодаря тому, что этот язык вобрал в себя все то лучшее, что было создано до него. Поэтому людям которые переходили с других подобных языков на Java не составляло большого труда переориентироваться на новый язык. Если вы посмотрите на PHP, то он и сам во многом похож на Java, прежде всего объектной моделью.

    Давайте рассмотрим некоторые похожие особенности языков: Класс на PHP7 можно описать следующим образом:

    Тот же класс на Java:

    class SomeClass
    <
    // общедоступный статический метод, принимающий аргументы командной строки и ничего не возвращающий
    public static void main(String[] args)
    <
    System.out.println(«SomeClass»);
    >
    >

    Посмотрите насколько листинги этих двух классов на PHP и на Java похожи. Итак во многом. Поэтому, если Вы уже знаете хорошо PHP, то для Вас не составит особого труда научиться языку программирования Java. Для этого как раз я записал видеокурс «Программирование на Java с Нуля до Гуру», который поможет Вам изучить этот популярный язык.

    Отличия между Java и PHP здесь состоят в том, что PHP класс мы можем запустить, например, подключением его в какой-либо файл, с последующим вызовом статического метода main, тогда как в Java нам надо с начало скомпилировать файл и только затем появится возможность его запустить. Причем точкой входа в приложение, т.е. метод с которого начнется выполнение программы будет метод main, так как среда Java устроена так, что при запуске приложения автоматически ищет класс с публичным открытым методом main, который получает параметры командной строки через массив строк args.

    Также обратите внимание на такую особенность, если в Java класс называется SomeClass, то и файл в котором лежит этот класс должен называться SomeClass.java и никак иначе т.е. SomeClassA.java — не подойдет так как компилятор выдаст ошибку. Поначалу это может раздражать, однако, в последствии привыкнув к этому, вам будет намного удобнее и проще использовать такой вариант.

    Вообще Java, как строго типизированный язык, накладывает много ограничений, на то как можно писать код, но это отнюдь не минус, а даже плюс, так как язык заставляет Вас думать в соответствии со своей концепцией, тем самым дисциплинируя и позволяя избежать многих ошибок.

    Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    Java ee — Выбор языка для реализации проекта(PHP & Java)

    DeveloperRu, мне лично ява не сильно по душе

    вот к .net лежит душа, както в нем все более очевидно и продумано + многое доступно «из коробки»

    ну там есть аналоги hashtable, можно в принципе сделать свой бесконечно вложенный хаштейбл и будут привычные пхп массивы)

    ну и какбы там есть объекты массивы в принципе особо не нужны)

    посмотрел отзывы о hashtable — говорят, забудьте о стиле программирования, как в PHP
    говорят, в Java другая парадигма

    на .net смотрел, вроде более цельным выглядит на первый взгляд, но если приглядеться — то .нет хорош для небольших веб-проектов, однако если речь идет о проектах уровня предприятия, то в Java есть реализованные стандарты для реализации подобных задач, причем стандарты с бесплатными или относительно недорогими решениями, поэтому Java и заинтересовался.. надо куда-то расти из PHP

    WEB приложение на Java

    Вы наверняка слышали о том, что сайты можно делать на PHP, Python и довольно не плохие сайты. Но как же Java? Да на java тоже можно делать очень даже офигенные сайты, а если быть точней то используют java для разработки крупных ресурсов. В этом уроке я покажу как создать простое web-приложение на java.

    Что нам потребуется для создания web-приложения?

    1) Любой сервер приложений в нашем случае это будет Tomcat 7.0.

    2) Верная и надежная Intellij IDEA.

    3) Желание создать своё первое WEB-приложение.

    Шаг 1

    Создаем обычный Maven проект, назовем его MyFirstWebProject. Структура проекта следующая:

    Давайте теперь разберем структуру проекта: src/java/ servlets – тут будут лежать сервлеты(сервлеты будут рассматриваться в Шаг 2.) src/ resources – тут будут лежать все ресурсные файлы которые буду нужны для проекта. src/ webapp – тут лежат все файлы которые будут использоваться во view (к примеру img, css).

    Шаг 2

    Теперь разберем что такое Servlet? Servlet – это Java-интерфейс, реализация которого расширяет функциональные возможности сервера. Servlet взаимодействует с клиентами посредством принципа запрос-ответ за частую это запросы GET, POST по протоколу HTTP/HTTPS. Для создания сервлета нам нужно подключить зависимости в Maven.

    А также не забудьте указать:

    это говорит Maven-у что собирать надо в WEB проект, по умолчанию он собирает jar.

    Теперь нужно добавить 2 плагина который позволяет откомпилировать и собрать проект в war архив.

    Полный листинг pom.xml:

    Теперь создадим класс MyServlet который унаследуем от HttpServlet.

    Как вы видите тут есть два метода doPost и doGet, как я уже упоминал сервлеты взаимодействуют с клиентом по средством запрос-ответ, так вот в основном это GET и POST. Внимание! Главное не допускать такую ошибку, что всего есть два метода GET/POST их на самом деле 9, это OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT, PATCH. И так рассмотрим эти методы методы: Как вы уже поняли метод doPost принимает и отправляет посредством запроса POST, doGet по средством запроса GET. У обоих методов есть входящие параметры типы которых – HttpServletRequest и HttpServletResponse. HttpServletRequest request – это запрос со стороны клиента; HttpServletResponse response – это ответ со стороны сервера.

    Аннотация @WebServlet(“/s”) указывает на то что данный сервлет будет доступен по адресу /s.

    Шаг 3

    Не забываем, что метод GET срабатывает когда мы просто заходим по URL на страничку, а пост чаще всего используется при передачи данных с формы, но при условии что метод передачи данных формы указан POST. Создадим “Hello Word”:

    response.setContentType(«text/html») – в этой строке мы говорим про то что отображать мы будем страничку как html. PrintWriter out = response.getWriter() – тут мы создаем врайтер который поможет нам осуществить ответ с сервера. out.println(«Hello Word») – ну и отправляем ответ с сервера клиенту.

    Шаг 4

    Теперь соберите проект в Maven:

    Шаг 5

    Установка и настройка Tomcat 7.0.

    2. Извлекаем с архива;

    3. Настроить Intellij IDEA что бы деплоить приложение на сервер с нее.

    Нажимаем плюсик выбираем Tomcat Server -> Local после чего нажимаем Configure… и выбираем корневую папку где лежит Tomcat 7.0.

    В Startup Page – указываем стартовую страничку загрузки в нашем случае это localhost:8080/s (где s это наш про аннотированиый сервлет).

    Дальше заходим во вкладкуDeployment:

    И выбираем ваш собранный проект, лежит он в корне проекта в папке target/ .war

    Шаг 6

    Завяжем на наш сервлет jsp страничку.

    Для этого мы должны создать в папке src/main/webapp нашу страничку, в нашем случае это index.jsp.

    И теперь с помощью метода GET отправим на нее тот же текст “

    Hello World!

    Вот так будет выглядеть наш метод сервлета doGet():

    С помощью RequestDispatcher мы отправляем наш response request клиенту.

    А так будет выглядеть index.jsp

    С помощью конструкции $ мы принимаем данные с сервера.

    После этого вы получите ту же по виду страничку, только это уже будет не сервлет отображать а jsp.

    Для получения углубленных знаний по Java проходите наш курс «Программирование на языке Java для начинающих», а также читайте серию статей «Spring Data JPA. Работа с БД»: часть 1, часть 2 и часть 3

    Цукерберг рекомендует:  Вакансии ОРМИС-Инструмент
    Понравилась статья? Поделиться с друзьями:
    Все языки программирования для начинающих