JAVA-технологии в интернете

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

При слове Java-технология в интернете многим пользователям приходит на ум в первую очередь это, JavaScript. Конечно, из за созвучности их названия, спутать их гораздо легко.

Но, JavaScript — прототипно-ориентированный сценарный язык программирования.

Является реализацией языка ECMAScript (стандарт ECMA-262).

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Кроме созвучного названия, к продуктам компании SunMycrosystemsничего общего нет.

Перейдем непосредственно к самим Java-технологиям. В Java-технологиях в интернете используются следующие инструменты: Javaапплет, Javaсервлет и портлет.

А теперь каждому по порядку. Апплет.

Аппле́т (англ. applet от application — приложение и -let — уменьшительный суффикс)— это не самостоятельный компонент программного обеспечения, работающий в контексте другого, полновесного приложения, предназначенный для одной узкой задачи и не имеющий ценности в отрыве от базового приложения.

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

  • Java-апплет — программный компонент в двоичном коде виртуальной машины Java, исполняется в окне браузера Web-страниц, в целях безопасности обособлен от основной системы в т. н. «песочнице» (англ. sandbox).
  • Элемент модульных диалоговых сред X WindowSystem (GNOME, KDE, Xfce), MicrosoftWindows, AppleMac OS. Является приложением в машинном коде для соответствующей ОС, взаимодействует с основным приложением (менеджером окон) посредством стандартного API. Хотя обычно под аплетом подразумевают элемент, который может быть отдельно установлен, удалён или настроен пользователем, типичные примеры аплетов — часы-календарь и Языковая панель Windows, Панель управления и различные оснастки консоли MMC.

Мы рассматриваем непосредственно Java-апплетов.

Java-апплет — прикладная программа, чаще всего написанная на языке программирования Java в форме байт-кода. Java-апплеты выполняются в веб-обозревателе с использованием виртуальной Java машины (JVM), или в Sun'sAppletViewer, автономном средстве для испытания апплетов. Java-апплеты были внедрены в первой версии языка Java в 1995 году. Java-апплеты обычно пишутся на языке программирования Java, но могут быть написаны и на других языках, которые компилируются в байт‐код Java, таких, как Jython. 

Апплеты используются для предоставления интерактивных возможностей вебприложений, которые не могут быть предоставлены HTML. Так как байт-код Javaплатформо-независим, то Java-апплеты могут выполняться с помощью плагинов браузерами многих платформ, включая MicrosoftWindows, UNIX, AppleMac OS и GNU/Linux. Такие программы с открытым исходным кодом, как «applet2app», могут быть использованы для преобразования апплета в самостоятельные программы на Java или исполняемые файлы Linux и Windows.

Преимущества Java-апплетов. Преимущества использования Java-апплетов

  • кроссплатформенность
  • апплет может работать на «всех» установленных к этому времени версиях Java, а не только с последней версией; однако, если апплет требует последнюю версию JRE, то клиент будет вынужден ждать более длительной загрузки;
  • апплет поддерживается большинством браузеров;
  • он кэшируется в большинстве браузеров, а потому будет быстро загружаться при возвращении на веб-страницу; но апплет может сохраняться в кэше и создавать проблемы после выхода новых версий;
  • он может иметь полный доступ к машине, на которой выполняется, если пользователь согласен на это;
  • апплет может улучшить использование: после первого запуска апплета, когда JVM уже выполняется и быстро запускается, преимущественно у постоянных пользователей Java, однако JVM придется перезапускать каждый раз, когда запускается новый браузер.
  • он может запуститься с сопоставимой (но обычно медленнее) скоростью на других компилируемых языках, таких как C++, но во много раз быстрее, чем JavaScript
  • он может перенести работу с сервера к клиенту, делая Интернет-решение с, большим числом пользователей / клиентов.

Несмотря на это Java-апплеты имеют следующие недостатки. Java-апплет обладает следующими недостатками:

  • он требует установки Java-расширения (plug-in), которое не во всех браузерах доступно по умолчанию;
  • он не может запуститься до тех пор, пока не запустится виртуальная Java-машина, и это может занять значительное время при первом запуске;
  • создание и дизайн хорошего пользовательского интерфейса с использованием апплетов считается более сложной задачей, чем с помощью технологии, основанной на HTML;
  • некоторые организации допускают только программное обеспечение, установленное администраторами. В результате многие пользователи не могут видеть апплеты по умолчанию.
  • апплеты могут потребовать использования определенного JRE. Сервлет

Следующим членом семейства Java-технологии в Интернете, является – Java-сервлет.

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

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

Пакеты javax.servlet и javax.servlet.http обеспечивают интерфейсы и классы для создания сервлетов.

Первая спецификация сервлетов была создана в SunMicrosystems (версия 1.0 была закончена в июне 1997). Начиная с версии 2.3, спецификация сервлетов разрабатывалась под руководством JavaCommunityProcess. Стандарт JSR 53 определял как Servlet 2.3, так и спецификацию JavaServerPage 1.2. JSR 154 включает в себя спецификации Servlet 2.4 и 2.5. Текущая спецификация на 13 июня 2013 года — Servlet 3.1 (описана в JSR-340).

Жизненный цикл Сервлета

Жизненный цикл сервлета состоит из следующих шагов:

  1. В случае отсутствия сервлета в контейнере.
    1. Класс сервлета загружается контейнером.
    2. Контейнер создает экземпляр класса сервлета.
    3. Контейнер вызывает метод init(). Этот метод инициализирует сервлет и вызывается в первую очередь, до того, как сервлет сможет обслуживать запросы. За весь жизненный цикл метод init() вызывается только один раз.
  2. Обслуживание клиентского запроса. Каждый запрос обрабатывается в своем отдельном потоке. Контейнер вызывает метод service() для каждого запроса. Этот метод определяет тип пришедшего запроса и распределяет его в соответствующий этому типу метод для обработки запроса. Разработчик сервлета должен предоставить реализацию для этих методов. Если поступил запрос, метод для которого не реализован, вызывается метод родительского класса и обычно завершается возвращением ошибки инициатору запроса.
  3. В случае если контейнеру необходимо удалить сервлет, он вызывает метод destroy(), который снимает сервлет из эксплуатации. Подобно методу init(), этот метод тоже вызывается единожды за весь цикл сервлета.

Контейнер сервлетов — программа, представляющая собой сервер, который занимается системной поддержкой сервлетов и обеспечивает их жизненный цикл в соответствии с правилами, определёнными в спецификациях. Может работать как полноценный самостоятельный веб-сервер, быть поставщиком страниц для другого вебсервера, например Apache, или интегрироваться в Java EE сервер приложений. Обеспечивает обмен данными между сервлетом и клиентами, берёт на себя выполнение таких функций, как создание программной среды для функционирующего сервлета, идентификацию и авторизацию клиентов, организацию сессии для каждого из них.

JSP (JavaServerPages) — технология, позволяющая веб-разработчикам создавать содержимое, которое имеет как статические, так и динамические компоненты. Страница JSP содержит текст двух типов: статические исходные данные, которые могут быть оформлены в одном из текстовых форматов HTML, SVG, WML, или XML, и JSPэлементы, которые конструируют динамическое содержимое. Кроме этого могут использоваться библиотеки JSP-тегов, а также EL (ExpressionLanguage), для внедрения Java-кода в статичное содержимое JSP-страниц.

Код JSP-страницы транслируется в Java-код сервлета с помощью компилятора JSPстраниц Jasper, и затем компилируется в байт-код виртуальной машины java (JVM). Контейнеры сервлетов, способные исполнять JSP-страницы, написаны на платформонезависимом языке Java. JSP-страницы загружаются на сервере и управляются из структуры специального Javaserverpacket, который называется Java EE WebApplication. Обычно страницы упакованы в файловые архивы .war и .ear. 

JSP является платформонезависимой, переносимой и легко расширяемой технологией для разработки веб-приложений.

Портлет

Портлет — подключаемый, сменный компонент пользовательского интерфейса вебпортала (элемент веб-страницы).

Портлет выдаёт фрагменты разметки, которые встраиваются в страницу портала. Чаще всего страница портала представляется в виде набора не перекрывающих друг друга портлетных окон, каждое из которых отображает портлет. Таким образом, портлет (или совокупность портлетов) представляется в виде единого веб-приложения, размещённого на портале. Примеры портлетов: email, сообщения о погоде, последние новости.

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

Существует протокол WSRP, обеспечивающий стандарт веб-сервисов, который позволяет автоматически встраивать запущенные удалённо портлеты из разных источников.

Спецификации Java-портлетов JSR 168 (1.0) и JSR 286 (2.0) дают возможность взаимодействовать между собой портлетам из разных веб-порталов. Эта спецификация определяет множество API для взаимодействия контейнеров портлетов и даёт адреса областей персонализации, представления и безопасности.

ApachePluto — эталонная реализация обеих спецификаций. Существует множество поставщиков коммерческих реализаций контейнеров портлетов. Лидируют в этой области IBM, Oracle, Vignette. Реализации от этих поставщиков имеют дополнительные расширения, не утверждённые стандартами. Кроме того, есть порталы с открытым исходным кодом, поддерживающие JSR168, такие как корпоративный портал Apache Jetspeed-2 или eXoPortal.

Спецификация Java-портлетов (англ. JavaPortletSpecification) описывает модель взаимодействия между портлетом и портлетным контейнером. Эта спецификация очень похожа на спецификацию Java-сервлетов (англ. JavaServletSpecification) и, фактически, разработана на основе JavaServletSpecification версии 2.3 и JavaServerPages версии 1.2.

 

Список использованной литературы: 

  1. Information about writing applets from Sun Microsystems
  2. Applet section of Wikibook’s Java book
  3. Demonstration applets from Sun Microsystems (JDK 1.4 — include source code)
  4. Latest version of Sun Microsystems Java Virtual Machine (includes browser plug-ins for running Java applets in most web browsers).
  5. Examples of interactive Java Applets from physics, biology and social systems
  6. Examples for Java Applets with sourcecode
  7. Апплеты и сервлетыJava как средства расширения возможностей браузера и Webсервера
  8. JavaServletTechnology (англ.) — Официальная домашняя страница
  9. Нововведения в стандарте Servlet API 5
  10. What’s new in Servlet 3.1 (англ.)
  11. JSR-168, Java Portlet API
  12. JSR-286, Java Portlet API 0
  13. Проект Apache Pluto
  14. JSR 168: Portlet Specification
  15. JSR 286: Portlet Specification
  16. Проект Apache Pluto
  17. Официальная домашняя страница JSP (англ.)
  18. ТехнологияJavaServer Pages (рус.) 
  19. Введение в JSP (рус.)
  20. Перевод руководства по JavaServerPagesJSP2 (рус.)
  21. A Tutorial on Java Servlets and Java Server Pages (англ.)
  22. JavaServer Pages (JSP) v1.2 Syntax Reference, [1], v2.0 (англ.)
  23. JAVASERVER PAGESª (JSPª) SYNTAX version 1.2, version 2.0 (англ.)
  24. Подборкастатейпо JSP
Год: 2016
Город: Актюбинск
Категория: Информатика
loading...