Введите Ваш E-mail адрес и Вы будете первым, кто получит новые статьи.

Статьи

Учебник по веб-приложениям на Java для начинающих

  1. Java веб-приложение
  2. Веб-сервер и клиент
  3. HTML и HTTP
  4. Понимание URL
  5. Зачем нам нужны сервлеты и JSP?
  6. Веб-разработка Java
  7. Скачать FirstServlet Project
  8. Веб-контейнер
  9. Структура каталогов веб-приложений
  10. Дескриптор развертывания
  11. О Панкадж

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

JSP

Java веб-приложение

Цель этой статьи - предоставить основные сведения о различных компонентах в веб-приложении и о том, как мы можем использовать сервлет и JSP для создания нашего первого веб-приложения на Java.

  1. Веб-сервер и клиент
  2. HTML и HTTP
  3. Понимание URL
  4. Зачем нам нужны сервлеты и JSP?
  5. Первое веб-приложение с сервлетом и JSP
  6. Веб-контейнер
  7. Структура каталогов веб-приложений
  8. Дескриптор развертывания

Веб-сервер и клиент

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

Веб-клиент - это программное обеспечение, которое помогает в общении с сервером. Некоторыми из наиболее широко используемых веб-клиентов являются Firefox, Google Chrome, Safari и т. Д. Когда мы запрашиваем что-то с сервера (через URL), веб-клиент заботится о создании запроса и его отправке на сервер, а затем анализирует ответ сервера и представляет его. пользователю.

HTML и HTTP

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

Веб-серверу и клиенту нужен общий протокол связи, HTTP ( H -per T ext T ransfer P rotocol) - это протокол связи между сервером и клиентом. HTTP работает поверх протокола связи TCP / IP.

Некоторые из важных частей HTTP-запроса:

  • HTTP-метод - действие, которое нужно выполнить, обычно это GET, POST, PUT и т. Д.
  • URL - страница для доступа
  • Параметры формы - аналогично аргументам в java-методе, например, user, пароль на странице входа.

Пример HTTP-запроса:


копия

GET /FirstServletProject/jsps/hello.jsp HTTP / 1.1 Хост: localhost: 8080 Cache-Control: no-cache

Некоторые важные части HTTP Response:

  • Код состояния - целое число, указывающее, был ли запрос успешным или нет. Некоторые из известных кодов состояния - 200 для успеха, 404 для Not Found и 403 для Access Forbidden.
  • Тип содержимого - текст, HTML, изображение, PDF и т. Д. Также известный как MIME-тип
  • Контент - фактические данные, которые отображаются клиентом и показываются пользователю.

Пример ответа HTTP:


копия

200 OK Дата: Среда, 07 августа 2013 19:55:50 GMT Сервер: Apache-Coyote / 1.1 Длина контента: 309 Тип контента: text / html; charset = US-ASCII <! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // EN "" http://www.w3.org/TR/html4/loose.dtd "> <html> <head> <meta http-эквивалент =" Content-Type "content =" text / html; charset = US-ASCII "> <title> Здравствуйте, </ title> </ head> <body> <h2> Привет! </ h2> <br> <h3> Дата = Ср. Авг 07 12:57 : 55 PDT 2013 </ h3> </ body> </ html>

MIME-тип или тип содержимого . Если вы видите приведенный выше пример заголовка HTTP-ответа, он содержит тег «Content-Type». Он также называется MIME-типом, и сервер отправляет его клиенту, чтобы сообщить им, какие данные он отправляет. Это помогает клиенту в рендеринге данных для пользователя. Некоторые из наиболее часто используемых типов MIME - это text / html, text / xml, application / xml и т. Д.

Понимание URL

URL является аббревиатурой от Universal Resource Locator и используется для поиска сервера и ресурса. Каждый ресурс в сети имеет свой уникальный адрес. Давайте посмотрим части URL с примером.

HTTP: // локальный: 8080 / FirstServletProject / JSPs / hello.jsp

http: // - это первая часть URL и предоставляет протокол связи, который будет использоваться при обмене данными между сервером и клиентом.

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

8080 - это порт, который прослушивает сервер, это необязательно, и если мы не предоставляем его в URL, запрос отправляется на порт протокола по умолчанию. Номера портов от 0 до 1023 являются зарезервированными для хорошо известных служб, например, 80 для HTTP, 443 для HTTPS, 21 для FTP и т. Д.

FirstServletProject / jsps / hello.jsp - Ресурс, запрошенный с сервера. Это может быть статический HTML, PDF, JSP, сервлеты, PHP и т. Д.

Зачем нам нужны сервлеты и JSP?

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

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

Веб-разработка Java

Первое веб-приложение с сервлетом и JSP

Мы будем использовать «Eclipse IDE для разработчиков Java EE» для создания нашего первого приложения с сервлетами. Поскольку сервлет является серверной технологией, нам потребуется веб-контейнер, поддерживающий технологию сервлетов, поэтому мы будем использовать сервер Apache Tomcat. Это очень легко настроить, и я оставляю эту часть для себя.

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

Перейдите в Eclipse Preference и выберите Server Runtime Environments и выберите версию вашего сервера Tomcat, у меня Tomcat 7.

Укажите местоположение каталога Apache Tomcat и информацию о JRE, чтобы добавить среду выполнения.

Теперь перейдите в представление «Серверы» и создайте новый сервер, как показано на рисунке ниже, указывающий на добавленную выше среду выполнения.

Теперь перейдите в представление «Серверы» и создайте новый сервер, как показано на рисунке ниже, указывающий на добавленную выше среду выполнения

Примечание . Если вкладка «Серверы» не отображается, вы можете выбрать «Окно»> «Показать представление»> «Серверы», чтобы она была видна в окне Eclipse. Попробуйте остановить и запустить сервер, чтобы убедиться, что он работает нормально. Если вы уже запустили сервер из терминала, то вам придется остановиться, если из терминала, а затем запустить его из Eclipse, иначе он не будет работать идеально.

Теперь мы готовы с нашей настройкой, чтобы создать первый сервлет и запустить его на сервере Tomcat.

Выберите «Файл»> «Создать»> «Динамический веб-проект» и используйте изображение ниже, чтобы предоставить среду выполнения в качестве сервера, который мы добавили на предыдущем шаге, и версию модуля как 3.0 для создания нашего сервлета с использованием спецификаций Servlet 3.0.

0 для создания нашего сервлета с использованием спецификаций Servlet 3

Вы можете напрямую нажать кнопку «Готово», чтобы создать проект, или вы можете нажать кнопку «Далее», чтобы проверить другие параметры.

Теперь выберите File> New> Servlet и используйте изображение ниже, чтобы создать наш первый сервлет. Опять же, мы можем нажать «Готово» или проверить другие параметры с помощью следующей кнопки.

Когда мы нажимаем кнопку «Готово», она генерирует наш скелетный код сервлета, поэтому нам не нужно вводить все различные методы и импортировать в сервлет, что экономит наше время.

Теперь мы добавим HTML-код с динамическим кодом данных в метод doGet (), который будет вызываться для HTTP-запроса GET. Наш первый сервлет выглядит как ниже.


копия

пакет com.journaldev.first; импорт java.io.IOException; import java.io.PrintWriter; импорт java.util.Date; import javax.servlet.ServletException; import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; / ** * Класс реализации сервлета FirstServlet * / @WebServlet (description = "Мой первый сервлет", urlPatterns = {"/ FirstServlet", "/FirstServlet.do"}, initParams = {@WebInitParam (name = "id", значение) = "1"), @ WebInitParam (name = "name", value = "pankaj")}) открытый класс FirstServlet extends HttpServlet {частная статическая конечная длинная serialVersionUID = 1L; public static final String HTML_START = "<html> <body>"; public static final String HTML_END = "</ body> </ html>"; / ** * @see HttpServlet # HttpServlet () * / public FirstServlet () {super (); // TODO Автоматически сгенерированная заглушка конструктора} / ** * @see HttpServlet # doGet (запрос HttpServletRequest, ответ HttpServletResponse) * / protected void doGet (запрос HttpServletRequest, ответ HttpServletResponse {}) ; Дата дата = новая дата (); out.println (HTML_START + "<h2> Привет! </ h2> <br/> <h3> Date =" + date + "</ h3>" + HTML_END); } / ** * @see HttpServlet # doPost (запрос HttpServletRequest, ответ HttpServletResponse) * / protected void doPost (запрос HttpServletRequest, ответ HttpServletResponse) генерирует исключение ServletException, IOException сгенерированный {// stub}

Перед сервлетом 3 нам нужно предоставить информацию о шаблоне URL в дескрипторе развертывания веб-приложения, но сервлет 3.0 использует Java аннотации это легко понять, и вероятность ошибок меньше.

Теперь выберите «Выполнить»> «Выполнить на сервере» в окне редактора сервлетов и используйте изображения ниже.

После нажатия кнопки «Готово» браузер откроется в Eclipse, и мы получим следующую HTML-страницу.

После нажатия кнопки «Готово» браузер откроется в Eclipse, и мы получим следующую HTML-страницу

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

Таким образом, сервлет используется для генерации HTML и отправки его в ответ. Если вы посмотрите на реализацию doGet (), мы фактически создаем HTML-документ как запись его в ответном объекте PrintWriter и добавляем динамическую информацию там, где она нам нужна.

Это хорошо для начала, но если ответ огромен с большим количеством динамических данных, он подвержен ошибкам и его трудно читать и поддерживать. Это основная причина внедрения JSP.

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


копия

<% @ page import = "java.util.Date"%> <% @ page language = "java" contentType = "text / html; charset = US-ASCII" pageEncoding = "US-ASCII"%> <! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-эквивалента = "Содержание -Тип "content =" text / html; charset = US-ASCII "> <title> Здравствуйте, </ title> </ head> <body> <h2> Привет! </ H2> <br> <h3> Date = <% = новая дата ()%> </ h3> </ body> </ html>

Если мы запустим выше JSP, мы получим вывод как на картинке ниже.

Если мы запустим выше JSP, мы получим вывод как на картинке ниже

Окончательная иерархия проекта выглядит как изображение ниже в Eclipse.

Окончательная иерархия проекта выглядит как изображение ниже в Eclipse

Скачать FirstServlet Project

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

Веб-контейнер

Tomcat - это веб-контейнер, когда клиент отправляет запрос на веб-сервер, он передает запрос веб-контейнеру и заданию веб-контейнера, чтобы найти правильный ресурс для обработки запроса (сервлет или JSP), а затем использует ответ от ресурс для генерации ответа и предоставления его веб-серверу. Затем веб-сервер отправляет ответ клиенту.

Когда веб-контейнер получает запрос, и если это для сервлета, контейнер создает два объекта HTTPServletRequest и HTTPServletResponse. Затем он находит правильный сервлет на основе URL-адреса и создает поток для запроса. Затем он вызывает метод servlet service () и, основываясь на методе HTTP, метод service () вызывает методы doGet () или doPost (). Методы сервлета генерируют динамическую страницу и записывают ее в ответ. После завершения потока сервлета контейнер преобразует ответ в ответ HTTP и отправляет его обратно клиенту.

Некоторые из важных работ, выполняемых веб-контейнером:

  • Коммуникационная поддержка - Контейнер обеспечивает простой способ связи между веб-сервером и сервлетами и JSP. Из-за контейнера нам не нужно создавать сокет сервера, чтобы прослушивать любой запрос от веб-сервера, анализировать запрос и генерировать ответ. Все эти важные и сложные задачи выполняются контейнером, и все, что нам нужно сосредоточиться, - это наша бизнес-логика для наших приложений.
  • Управление жизненным циклом и ресурсами - Контейнер заботится об управлении жизненным циклом сервлета. Контейнер заботится о загрузке сервлетов в память, инициализации сервлетов, вызове методов сервлетов и их уничтожении. Контейнер также предоставляет утилиту, такую ​​как JNDI для пула ресурсов и управления ими.
  • Многопоточность Поддержка - Контейнер создает новый поток для каждого запроса к сервлету, и когда он обрабатывается, поток умирает. Таким образом, сервлеты не инициализируются для каждого запроса и экономят время и память.
  • Поддержка JSP - JSP не похожи на обычные классы Java, а веб-контейнер обеспечивает поддержку JSP. Каждый JSP в приложении компилируется контейнером и преобразуется в сервлет, а затем контейнер управляет ими, как и другие сервлеты.
  • Разное Задача - Веб-контейнер управляет пулом ресурсов, выполняет оптимизацию памяти, запускает сборщик мусора, предоставляет конфигурации безопасности, поддержку нескольких приложений, горячее развертывание и ряд других задач за сценой, которые облегчают нашу жизнь.

Структура каталогов веб-приложений

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

Дескриптор развертывания

Файл web.xml является дескриптором развертывания веб-приложения и содержит сопоставление для сервлетов (до версии 3.0), страниц приветствия, настроек безопасности, настроек времени ожидания сеанса и т. д.

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

Обновление : следующий урок в этой серии Учебник по Java-сервлетам

Обновление : следующий урок в этой серии   Учебник по Java-сервлетам

О Панкадж

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

Похожие

Операционная система Windows 10 бесплатно скачать полную версию
... ила еще одно сомнение, которое затянулось надолго - получат ли тестеры Insider Preview бесплатную копию Windows 10 . И ответ, в некотором смысле, ДА. Те, кто подписался на Windows Insider, будут продолжать получать полную версию операционной системы Windows 10 для бесплатной загрузки на законных основаниях для тестирования навсегда. Они будут получать все обновления до того, как обычные пользователи смогут получить к ним доступ, чтобы они могли проверить его и отправить отзыв
Как исправить проблемы активации Windows 10
Если вам повезет, вы установите или обновитесь до Windows 10, и система активируется автоматически, или как только вы введете 25-значный ключ продукта - это подтверждает, что у вас есть легальная копия Windows, которую вы используете. право на использование, которое получит обновления безопасности и новые функции. Но для некоторых пользователей Windows 10 не активируется должным образом. Вот как это исправить. Понимание активации Windows 10 В зависимости от того, как вы получаете
Как Facebook влияет на позиционирование?
В последнее время много было слышно о влиянии социального Медиа для позиционирования. Это правда об интеграции стратегии социальных сетей с SEO Я слышал уже в 2008-2009 годах, когда на зарубежных форумах и порталах мы читали о получении ссылок из социальных сетей . В то время в Польше социальные сети редко рассматривались как ссылки. Мы использовали совершенно
Как играть в YouTube с экрана от iPhone
Мы любим заходить в приложение YouTube, чтобы найти и посмотреть видео для развлечения на нашем iPhone. Но у приложения есть довольно серьезный недостаток. Мы не можем воспроизводить YouTube в фоновом режиме на iPhone. Я предполагаю, что это просто преднамеренная, но неудобная функция от команды YouTube. Потому что YouTube больше фокусируется на просмотре видео, а не на прослушивании видео. Однако в некоторых ситуациях мы предпочитаем слушать видео на YouTube. Например, когда мы находим
Создание баннера: Google Web Designer и его альтернативы
Copyright © 'Comstock / Stockbyte / Thinkstock' Вы хотите рекламировать красивые рекламные баннеры - но не графический дизайнер? Веб-дизайнер Google помогает менеджерам онлайн-маркетинга создавать красивые кампании даже без профессиональных знаний. У Google есть создание и схема баннеры связаны
Internet Explorer 9.0 скачать для Windows на английском языке
... имый многими, ненавистный многими. Так или иначе, Internet Explorer по-прежнему остается наиболее используемым браузером на рынке и только что достиг своей девятой версии. После многих анонсов и гигантского ожидания, связанного с его запуском, IE9 переполнен новостями, чтобы вернуть утраченную популярность. Недавно выпущенная версия браузера содержит все функции, обещанные Microsoft, и показывает, что компания выполнила домашнюю работу и выслушала жалобы пользователей, исправляя одну из
Как остановить все электронные письма Амазонки
Amazon рассылает тонну писем. Некоторые из них полезны - например, оповещения о том, что ваш заказ прошел, или о проблемах с заказом. Но остальное может действовать вам на нервы. Вот как изгнать каждого из них. Amazon действительно предпочитает отправлять вам более или менее все, что захочет, поэтому настройки всех этих электронных писем находятся
Сохраняйте местоположение вашего ребенка в тайне: отключите службы определения местоположения
Меня много спрашивают о Instagram а также писал об этом недавно , Одна из рекомендаций, которую я сделал, состояла в том, чтобы отключить службы определения местоположения на мобильном устройстве вашего ребенка, чтобы запретить Instagram автоматически помечать фотографию географическим местоположением. Зачем
Planoly - пост планирование в Instagram - Социальные сети
Planoly - это еще одно ненужное приложение? Многие блоггеры в последнее время пишут, что их читатели переезжают в Instagram. Если так, то стоит посмотреть, что делают лучшие в профессии. И как они это делают! Planoly - простой метод для хорошего Instagram Я не думаю, что кто-то из вас считает, что эти красиво составленные профили - совпадение. Я не знаю, знаете ли вы уже Planoly, но если вы серьезно относитесь
В соответствии с IDG Enterprise В 2016 году компании по всему миру потратили 3,5 миллиарда...
В соответствии с IDG Enterprise В 2016 году компании по всему миру потратили 3,5 миллиарда

Комментарии

Зачем?
Зачем? Главная страница Слайдеры Hurt Conversions Заставить человека посетить ваш сайт - само по себе маленькое чудо. Так много вещей должно идти правильно. Независимо от того, было ли это значительным охватом в социальных сетях, отличным SEO, стратегической платной рекламой или чем-то совершенно не относящимся к этим сферам, возможность того, что посетитель выберет ваш сайт для просмотра в Интернете, - подарок. Так зачем вам приветствовать посетителей тем, что
7. Зачем использовать Planoly?
7. Зачем использовать Planoly? Часто в жизни бывает так, что аппетит растет с едой. В любом случае это правда для меня. Когда я впервые зашел в Instagram, мне было достаточно увидеть фотографии других людей, сделанные более способными, чем я. Но со временем мне приснился собственный профиль с красивыми фотографиями. А потом началась лестница ... У меня не было достаточно таланта или терпения - когда я смотрел на свою фотосетку, я чувствовал, что что-то не так. Я начал читать, просматривать
Com/moas/broker/login/http/" + customerId + "?
com/moas/broker/login/http/" + customerId + "? Token =" + encryptedToken); } private string encrypt (строковое значение) {AesManaged tdes = new AesManaged (); String encryptionKey = "<YOUR_TOKEN_KEY>"; tdes.Key = Encoding.UTF8.GetBytes (encryptionKey); tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; ICryptoTransform crypt = tdes.CreateEncryptor (); byte [] plain = Encoding.UTF8.GetBytes (значение); byte [] cipher = crypt.TransformFinalBlock (plain,
Спросите себя, зачем этому приложению географическое местоположение?
Спросите себя, зачем этому приложению географическое местоположение? Если вы не можете придумать причину, выключите ее. Если вы обнаружите, что приложение становится бесполезным без информации о местоположении, затем включите его снова. Как я могу запретить моему ребенку изменять настройки служб определения местоположения? Допустим, вы прошли описанные выше шаги, чтобы предотвратить использование информации о местоположении в Instagram или других приложениях. Затем вы можете
А что если вам нужны все возможности Bootstrap 4?
А что если вам нужны все возможности Bootstrap 4? Вы можете по-разному включать jQuery, Popper.js и bootstrap.js, что не рекомендуется, используя массив scripts в файле .angular-cli.json "scripts": ["../node_modules/jquery/dist/jquery.js", "../node_modules/tether/dist/js/popper.js", "../node_modules/bootstrap/dist/js/bootstrap .js "], Другим лучшим альтернативным способом является использование библиотек компонентов, созданных для обеспечения беспроблемной работы
Нужны примеры того, как использовать совместные карты?
Нужны примеры того, как использовать совместные карты? Ну вот: Путешествуете по месту, которое некоторые из ваших друзей уже посещали? Поделитесь с ними картой своего назначения и позвольте им отмечать места, которые вам понравились больше всего. Лучше, чем любой путеводитель! Хотите открыть для себя новые места, такие как рестораны или бары, где вы живете? Поделитесь своей пользовательской картой с людьми, которых вы знаете, и попросите их добавить свои любимые места.
Зачем использовать это предложение?
Зачем использовать это предложение? Математика на болгарском языке - это оценка первой ключевой компетенции для каждого болгарского (европейского) гражданина - умение общаться на родном языке. Это показывает вашу грамотность, а грамотность является зеркалом культуры каждого успешного человека. Продукты Educational Technologies ™ основаны на веб-технологиях, с удобством использования Интернета из любого места и в удобное для пользователя время. Они содержат подробные

Зачем нам нужны сервлеты и JSP?
Зачем?
7. Зачем использовать Planoly?
7. Зачем использовать Planoly?
Com/moas/broker/login/http/" + customerId + "?
Спросите себя, зачем этому приложению географическое местоположение?
Как я могу запретить моему ребенку изменять настройки служб определения местоположения?
А что если вам нужны все возможности Bootstrap 4?
Нужны примеры того, как использовать совместные карты?
Ну вот: Путешествуете по месту, которое некоторые из ваших друзей уже посещали?

Новости