Как написать сайт на java

от admin

How to build a Java web application? Part 1/3 (Tools Installation)

This is a complete tutorial for beginners on how to develop a java web application using Spring MVC, Hibernate, Spring Data JPA and Java Servlet JSP from scratch. This tutorial will help you understand basic concepts, configurations, tools required and coding to execute a simple Login page with Create, Read, Update and Delete User detail functionalities (CRUD operation).

This article can be divided mainly into 3 sections.

  • One, Tools setup, you are here ��
  • Two, Coding + concepts (Read operation)
  • Three, Coding + concepts (Create, Update and Delete operation)

From my learning, I understood it is difficult to find everything in one shelf.

So, how about I share what I’ve learnt? ��

This blog will help you learn basic concepts and will guide in developing a simple Java web application from scratch.��

Technologies/Tools required �� :

  • Java 8 (jdk-13 and jre1.8.0_231)
  • Eclipse IDE — Oxygen (Release 4.15)
  • MySQL Server — Version 8.0.20
  • MySQL Workbench 8.0.20 for GUI
  • Apache Tomcat 9
  • Spring MVC framework 5.1
  • Hibernate framework 5.4
  • Spring Data JPA 2.1.5 (Java Persistence API)
  • Java Servlet 3.1 and Java Servlet JSP 2.3.1

Remember to download latest version of tools to stay updated. Versions mentioned in this article and videos are latest to its published day.

TOOLS INSTALLATION STEPS AND WHY :-

Why JDK, JRE and JVM?

In short, we code in a java file, it is converted into a class file so that machine can understand/read the logic and execute it.

JVM (Java Virtual Machine) is a virtual machine that doesn’t physically exist. It provides a runtime environment in which Java byte code can be executed. It can also run those programs which are written in other languages and compiled to Java byte code.

JVM performs following tasks:

a) Loads code

b) Verifies code

c) Executes code

d) Provides runtime environment

JRE (Java Runtime Environment) is a set of software tools sufficient to develop and run Java applications. It is used to provide runtime environment. It is the implementation of JVM, and JRE physically exists.

It contains a set of libraries + other files that JVM uses at runtime.

JRE = JVM + library files/java package classes (Util, Lang, Math etc)

JDK(Java Development Kit) is required to write, compile and run a program. It physically exists. It contains JRE and other development tools. JDK also contains few other resources such as an interpreter/loader (java), a compiler (javac), an archiver (jar) etc.

JDK = JRE + Tools needed to develop a java program

JVM, JRE, and JDK are platform dependent because configuration of each OS is different from each other. However, Java is platform independent and a portable language because of byte code.

  • Download JDK and JRE from the links below.

Java SE Development Kit 8 — Downloads

No results found Your search did not match any results. We suggest you try the following to help find what you're…

Java SE Runtime Environment 8 — Downloads

No results found Your search did not match any results. We suggest you try the following to help find what you're…

  • Once downloaded and installed, right-click on ‘My Computer’ -> Properties
  • Select ‘Advanced system settings
  • Select ‘Environment Variables
  • Under ‘System variables’, click New and provide below details.

Variable Name: JAVA_HOME

Variable Value: <<JDK location>>

  • Select ‘Path’, click Edit and New. Provide JDK location upto bin.
  • Click OK

To test if Java is properly installed, open command prompt(cmd) and type-

java -version

It should display installed java version — denotes installation successful.��

Why IDE?

An Integrated Development Environment (IDE) is a software application that provides facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools and a debugger.

In general, we need an IDE to code.��

Eclipse IDE is famous for Java Integrated Development Environment and is free and open-source software, supports tons of languages with more plugins coming all the time, and is incredibly simple to install and use, even for a beginner.

  • Go to https://www.eclipse.org/eclipseide/
  • Download the latest version. Click on ‘Download 2020–03’.
  • Download Eclipse IDE according to your OS. I’m using Windows, so I’ll go with ‘Windows 64 bit’ under ‘Download’.
  • Click on Download. There is also an option for you to change the Mirror. Choose the one closest to you for faster download.
  • Once download is complete, double-click the exe file.
  • Click Run.
  • Select ‘Eclipse IDE for Enterprise Java Developers’. This is required for developing Java web applications using technologies JPA and JSP.
  • Provide previously downloaded JDK location, installation folder and hit INSTALL.
  • Installation might take few minutes, as it may download few artifacts in background which is required for eclipse.
  • Once installation completed, go to the installation folder, click eclipse.exe to run the IDE.
  • Provide Workspace location where the project will be developed and Launch.

MySQL is free and an open-source relational database management system based on SQLStructured Query Language. It is used to store, retrieve, modify and administrate a database.

In short, it is where all the data will be stored for the application.��

  • Click on the below link and follow the steps as instructed.
  • Note down the root password as it is required to login to the MySQL database.
  • Once all the steps are done, go to Task Manager -> Services-> MySQL80
  • Status will be ‘Stopped’ initially. To run MySQL, this service must be in ‘Running’ status.
  • Right-click -> Start

Remember to perform this operation every time when you run your java web application.

  • Search ‘MySQL Workbench’ in Start Menu.
  • Click on Local instance and provide root password.

Apache Tomcat is an open-source implementation of the *Java Servlet, *Java Server Pages, Java Expression Language and Web Socket technologies. Tomcat provides a ‘pure Java’ HTTP web server environment in which Java code can run.

In short, it is an application server designed to execute Java Servlets and render web pages that use Java Server Page(JSP) coding.

  • Click on the below link and follow the steps as instructed.

What is Servlet and JSP?

  • Servlet is html in java whereas JSP is java in html.
  • Servlets run faster compared to JSP.
  • JSP is a web page scripting language that can generate dynamic content while Servlets are Java programs that are already compiled which also creates dynamic web content.
  • In MVC(Model View Controller), JSP acts as a view and servlet acts as a controller.

What is Java Servlet?

A Java Servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web applications on web servers.

What is JSP?

Java Server Page is a collection of technologies that helps software developers create dynamically generated web pages based on HTML, XML, SOAP, or other document types. JSP is similar to PHP and ASP, but uses the Java programming language. It is a server side technology. JSP tags are used to insert JAVA code into HTML pages.

Difference between Tomcat and Apache?

Tomcat provides dynamic content by employing Java-based logic, while the Apache web server’s primary purpose is to simply serve up static content such as HTML, images, audio and text.

Thank you for reading! I hope you’re able to understand and proceed development with this explanation and please share to help others too. ��

Веб-платформа на Java за 30 минут

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

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

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

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

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

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

Для тех, кто заинтересовался:

Подготовка

Установка того, что нам понадобиться:

Писать наш сервис мы будем на Java, как самом распространённом языке для веб-сервисов.

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

Если же всё-таки это не удалось, сразу договоримся с вами так, первым делом вы пытаетесь решить проблему на этих сайтах:

Вообще, открою вам секрет, в программировании, когда у вас всё заработало с 1 раза — это означает только одно, что что-то не работает. Это неоспоримый факт. Куча ошибок, несовместимость версий, отсутствие в библиотеке классов и прочее — это нормальное явление.

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

Итак, Java стоит — всё хорошо.

Теперь нам нужен инструмент. Да, нам нужна идея. Качаем и ставим отсюда JetBrains.

Только учтите, что вам нужна именно Ultimate — версия. Простая версия не позволяет разрабатывать веб-приложения. Там есть бесплатный пробный период на 30 дней, думаю с этим не будет проблем.

Итак, среда разработки есть, Java есть.

Начнём

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

Часто вижу вопросы от новичков про такие интересные вещи, как Spring и Hibernate (https://spring.io/, hibernate.org). В 96% случаях вам это пока что не надо, и без хорошей подготовки и хорошего скилла «solve problem» вы увязните там очень надолго и выбраться обратно будет очень тяжело.

Ваша альма-матер на первых порах — это 2 технологии:

«Application server». Что это такое? А вот, что Application server.

Так, нам нужен этот сервер, будем использовать Tomcat . Качаем его, если скачали то, что надо, а скорее всего скачали какую-нибудь фигню, то проверьте, архив должен называться «apache-tomcat-7.0.67.zip», разархивируем. Не забудьте, куда распаковали, пригодиться он вам ещё.

Концепция веб-ресурсов

Суть такая, сервер. Что такое сервер? Это программный код, который «зацикленно» крутиться в системе и слушает порты. Это тема отдельного разговора. Но в общем, рассмотрим 2 варианта того, что вообще сервер умеет делать, он умеет отдать данные (GET) — просто вернуть число, страницу, или ещё бог знает что. Но, есть ещё и POST — он тоже возвращает данные, но и принимает от клиента их перед этим.

Если ничего не понятно, читаем тут ru.wikipedia.org/wiki/REST.

Статья начинает слишком сильно расти. Теперь буду стараться писать более кратко.

Идём в мой репозиторий. Предполагаем, что человек совершенно не понимает, что такое система контроля версий, поэтому идём путём дилетанта, там есть кнопка («Download ZIP» — качаем и разархивируем).

В окне приветствия идеи есть кнопка «import project» — жмём. Выбираем скачанный и разархивированный проект.

Жмём далее, далее и далее, пока не откроется проект.

Первые сложности

Проект открыт, но вы не запустите сервер и не сможете открыть сайт. Почему? Потому что, идея не знает, что ей делать, она умна, но не настолько.

Объяснение того, как это сделать, заняло бы пару страниц и оказало бы вам «медвежью» услугу. Первые сложности — первые трудности. Это будет вашим «боевым крещением». Программировать — не пирожки печь. Ссылки сверху вам помогут. Потратить 1-2 часа на это — это нормально. Я знаю хороших и опытных программистов, которые сидели несколько дней, но так и не сумели правильно запустить сервер. Это не делает им чести — но факт — есть факт. Вперед. Запустите — возвращайтесь к чтению.

Не забудьте сообщить идее, что используем tomcat (как? ссылки вверху, по ним есть ответ).

Локальное тестирование сервиса

Получиться у вас должно примерно вот это:

Но есть проблема — не работает! Ну что же, этого следовало ожидать. У нас не создана таблица в базе данных. В проекте мы используем базу данных SQLite

Объяснить, что это такое будет с 0 не просто. Попробуйте почитать об этом на специализированных ресурсах.

Могу посоветовать хороший сервис: www.codecademy.com (там есть Java, SQL, Git, JavaScript и другие супер полезные вещи), поэтому милости прошу.

В итоге, нам нужно создать нашу таблицу, делаем это так:

Таблица создана. Можно проверить как работает наша система. Добавьте пару имён и посмотрите, как они будут вам возвращены уже из самой базы.

Разбор кода

Начнём смотреть, что же у нас в коде:

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

Приложение у нас простое, поэтому у всего 2 класса (SQLiteClass и MainServlet).

Очевидно, думаю, что первый отвечает за работу с базой данных, а второй и есть наш пресловутый сервлет.

А вот и наши, упомянутые выше POST и GET запросы, эти функции являются обработчиками и задают поведение сервлета в ответ на запросы от клиента. Суть одна — данные пришли, данные ушли. Ничего сложного. Попробуйте поиграться с методами.

Переходим к классу, реализующему JDBC:

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

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

Клиентская часть

Вот и пришло время взглянуть на то, что твориться у клиента в браузере. А ничего сверхъестественного. Но, скажу вам прямо, конечно всё зависит от проекта, но, клиентская часть обычно намного сложнее в реализации, чем серверная. И всё в основном из-за JavaScript-а. Очень быстро клиентский код превращается в набор «простыней», заплат, хардкода и прочих веселостей. JavaScript суров и беспощаден. На чистом нём писать очень тяжело. Поэтому мы используем JQuery. Есть куча других фреймворков и другого творения, но их касаться здесь не будем. Есть такая поговорка, что назови любое слово и это будет названием JS-фреймворка. Известен в узких кругах фреймфорк Mocha, я не представляю какие мысли посещали человека, когда он придумывал ему название, ну ладно, это было его право, конечно же.

Итак, что у нас там с клиентом?

Опять дам ссылку на отличнейший ресурс www.codecademy.com. Фронтенд там разобран очень хорошо и даёт необходимую базу для начинающих.

Тут рассмотрим только функцию

Что она делает? Правильно, шлёт тот самый POST — запрос и разбирает ответ. Всё просто, отдал данные и получил с сервера. По русски он говорит серверу «Дай мне имена всех, кто у тебя в базе» или «Занеси в базу это имя» и даёт ему имя.

Вот и вся клиентская часть.

Отправляем ресурс в настоящий мир

Как можно было заметить, наш сервис крутиться на локальном хосте. Другими словами на нашем же компьютере. Пришло время это исправить.

Тут я опишу лишь общий принцип сего действия. Это так или иначе потребует от вас денег на сервер, поэтому маловероятно, что кто-то действительно этим будет заниматься, особенно в самом начале своего программистского пути. Но понимать общую концепцию вы должны уже сейчас. Если кто решиться — знайте вы молодцы, вполне вероятно из вас может выйти толк.

И по традиции сразу несколько ссылок:

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

Сами сервера можно приобрести на amazone. Ссылку не даю, ибо реклама, можете сами поискать, это не сложно. Есть бесплатный тестовый период. НО! Будьте предельно осторожны, ваш покорный слуга сам слышал истории, как со счетов списывались тысячи долларов без ведома хозяина, ибо система сама умеет докупать себе мощности. Не попадитесь, я сам уже платил несколько раз за непонятные услуги, там всё на английском. Если не уверены, что делаете — лучше вообще не делайте.

Порядок действий таков:

  1. Арендуете облако
  2. Подключаетесь по протоколу ssh
  3. Ставите нужные пакеты и настраиваете систему
  4. Собираете у себя war-пакет и деплоите его на сервер
  5. Решаете кучу ошибок и проблем

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

Заключение

Вот мы и добрались до кульминации нашего здесь обсуждения Джавы и веб-разработки на ней. Сложно? Да. Интересно? Да. Все, абсолютно все сервисы, будь то, поисковая система с миллиардами индексов, будь то видео-сервис с миллионами стрим-каналов — всё строиться по одному принципу. Отдать — забрать данные. Понимая эту концепцию вы сможете написать любую систему, сервис или платформу.

Я не стану лукавить и обманывать вас уважаемые читатели. Вряд ли вы за 2 или 3 недели станете супер профессионалами и будете свободно писать код. Этому можно научиться только потом и долгими ночами. Чем дальше вы будете залазить в дебри, тем больше вы будете понимать, что вы так мало знаете. Дорогу осилит идущий, вперед, дерзайте.

Вперед. Пришло время действовать. Стареющим Дурову и Брину пора уйти на покой, время их славы уже прошло, пришло время обновить учебники истории и списки Forbs. И кто знает, может эту статью читает тот, кто в своё время напишет отличнейшую платформу, которая затмит собой таких гигантов как Google, Facebook и других. Удачи, спасибо, что дочитали до конца.

Создаем собственное web-приложение при помощи Java: что должен знать программист

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

С самого своего возникновения (в 1995 году) стал активно развиваться и совершенствоваться. Сейчас Java удобно использовать как для компьютерных программ, так и для мобильных платформ. Это – полноценный язык, поддерживающий объектно-ориентированное программирование. Ключевая особенность Java – возможность создавать веб-приложения и расширения.

Java в программировании – сильные стороны языка

Перед тем, как садиться за написание первых приложений на Джаве, нужно знать, какими особенностями обладает соответствующий язык. Далеко не все «способы общения» с софтом и «железом» подходят для написания конкретного контента.

У Java следующие особенности:

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

Java великолепно «работает» с Сетью. Именно для этой цели изначально планировалось создание оного. Также стоит отметить – упомянутый язык является кроссплатформенным. Перенести программу из одной ОС в другую удается в кратчайшие сроки и без потери качества исходной кодификации.

Понятие веб-приложения

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

В веб-приложении клиент будет взаимодействовать с веб-сервером посредством вспомогательных утилит. Их называют браузерами. Логика распределяется между сервером и клиентом. Хранение информации производится в основном на servers. Обмен данными обеспечивается Сетью.

Основное преимущество подобного контента – это то, что клиенты не будут зависеть от той или иной операционной системы. Не важно, какая ОС установлена на задействованном устройстве. Web-приложения будут работать везде. Это – кроссплатформенный вариант.

Читать:
Как настроить роутер на прием wifi с другого роутера

Техособенности

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

  1. Функции выполняются независимо от ОС пользователя.
  2. Приложение будет создаваться всего один раз для произвольно выбранной платформе. Именно на ней осуществляется дальнейшее развертывание.
  3. Иногда пользовательские права на редактирование настроек интернет-обозревателя способны доставить немало хлопот. Приложения для работы с сетью будут отображаться некорректно.
  4. Не исключены проблемы при разработке и поддержке утилит из-за разной реализации CSS и DOM.
  5. Возможно использование Java-апплетов и Adobe Flash. Со вторым типом приложений сегодня возникают затруднения. Связано это с тем, что Flash-технологии с 2015 года перестали поддерживаться.

В каком-то смысле веб приложения можно отнести к «толстым» клиентам. Связано это с особенностями архитектуры рассматриваемого контента.

Архитектурный вопрос

Для начала рекомендуется разобраться, какова архитектура у приложений типа «веб». Она включает в себя клиентскую и серверную части. За счет этого в жизнь воплощается технология под названием «клиент-сервер».

Клиент отвечает за реализацию пользовательского interface. Также он формирует серверные запросы и обрабатывает ответы, получаемые от соответствующих «команд».

  • получает заданный клиентом (юзером) запрос;
  • производит необходимые вычисления;
  • формирует веб-страничку для дальнейших манипуляций;
  • производит отправку полученной страницы пользователю по Сети, используя протоколы HTTP.

Веб приложение может являться клиентом иных служб.: баз данных или иных утилит, хранящихся на тех или иных серверах. Пока удается привести один узнаваемый пример – Википедия и ее система управления. Здесь n-количество участников способны принимать участие в разработке сетевой энциклопедии. Работа ведется посредством браузеров. Дополнительные исполняемые модули не загружаются.

Веб-сервер – это…

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

Web Applications работают по принципу «клиент-сервер». Но не совсем понятно, что такое server, как он реализован. Даже сложные и глобальные проекты будут функционировать по примерно одному и тому же принципу.

Веб-сервер – своеобразный сервер, который принимает HTTP-запросы от клиента, а затем выдает соответствующие ответы. Специальное программное обеспечение, которое выполняет функции веб-server. Может быть выражен «железом» с ПО для взаимодействия с Сетью.

Web Servers, как сказано в Google, обладают дополнительным функционалом. Примеры:

  • автоматизация работы страничек в Сети;
  • авторизация и аутентификация пользователей;
  • поддержка страниц, которые генерируются динамически;
  • возможность поддержки HTTPS для защищенных соединений;
  • ведение журнала пользовательских обращений к тем или иным ресурсам.

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

  • Apache;
  • Nginx;
  • Microsoft IIS.

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

Сервер приложений

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

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

Application Server – утилита, представленная сервером. Последний занимается системной поддержкой программ, а также отвечает за обеспечение жизненных циклов в соответствие с установленными принципами работы. Функционирует или самостоятельно, или выступает в качестве поставщика страниц для иных web-servers. Отвечает за обмен информации между софтом и клиентами. Создает программную среду для итогового приложения, помогает авторизовывать и идентифицировать клиентов, организовывает сессии для каждого «подключившегося».

Вот несколько распространенных серверов утилит на Java:

  • Tomcat Apache;
  • JBoss;
  • IBM WebSphere;
  • Oracle WebLogic.

Веб-сервер имеет отношение преимущественно к способу передачи данных. Если говорить об Application Server, можно сделать вывод о том, что это – более узкое понятие. Относится к способу исполнения программ (удаленная обработка клиентских команд). В одном ряду соответствующие термины не размещаются. Они отвечают за совершенно разные признаки софта.

Серверные технологии

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

Технология AJAX

AJAX – это асинхронный JavaScript и XML. Технология, которую можно считать относительно новой. При ней утилита не будет перезагружаться полностью. Для обновления информации осуществляется подгрузка недостающих/новых сведений. Это значительно ускоряет работу и упрощает ее.

AJAX в основном используется при интерактивных пользовательских интерфейсах. Обмен данными «браузер-сервер» протекает в фоновом режиме. Описать данный процесс можно так:

  1. Юзер открывает страничку в интернете.
  2. Происходит взаимодействие с тем или иным элементом.
  3. Скрипт JS определяет, какие данные нужны для обновления.
  4. Браузер отправляет соответствующий запрос на веб-сервер.
  5. Последний отвечает за возврат документа, на которую посылался запрос.
  6. Скрипт корректирует страницу с учетом полученных данных.

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

Динамическое обращение

Первый вариант развития событий – это технология динамического обращения к серверам «на лету» посредством динамического создания:

  • фреймов дочернего характера;
  • тегов <script>;
  • тегов <img>.

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

Второй подход – задействование DHTML для динамического корректирования информации на страничке.

Что включает в себя AJAX

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

  • HTML и CSS – для того, чтобы подавать и стилизировать электронные материалы;
  • DOM-модели – в ответе за динамическое отображение и взаимодействие с соответствующими сведениями через JS;
  • XMLHttpRequest или иные транспорты (Iframe, SCRIPT-теги и так далее) – асинхронизированый обмен материалами с web server;
  • JSON или иной формат соответствующего характера (форматированные HTML, тестовые «вариации», XML) – обмен информацией.

Фактически AJAX – это концепция применения сразу нескольких технологий серверного характера.

Технологии WebSocket

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

WebSoket – протокол полнодуплексной связи, накладываемый поверх TCP-соединения. Он предназначается для того, чтобы сервер обменивался данными с интернет-обозревателем в режиме реального времени, «здесь и сейчас». Комментарии тут излишни.

Достаточно запомнить, что данный вариант предусматривает две URI схема:

  • ws: – нешифрованное соединение;
  • wss: — шифрованный «коннектинг».

Технология не требует постоянных запросов клиент-сервер. В процессе реализации всегда создается двунаправленное соединение. Данные с server могут отправляться к client без запроса от оного.

А что о CGI?

Создавая приложение на Джаве, программист должен предварительно изучить возможные технологии работы веб-утилит. Есть вариант CGI. Это – низкоуровневый вариант. Стандарт, который использует интерфейс. Последний задействуется для связи внешней программы с сервером.

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

  • универсален за счет отсутствия требований к платформам;
  • позволяет использовать тот язык программирования, который хотим;
  • CGI – это готовый к запуску файл, что делает затрудненным расширение системы.

Все это заставило программистов развиваться в технологиях работы с серверными каналами. Теперь существуют более совершенные «версии» технологий.

Java Servlet

Сервлет относится к «методикам» Java. Сочетает в себе особенности API и CGI. Помогает разобраться с производительностью, так как все запросы будут выполняться в едином потоке в одном и том же процессе. Сервлеты не имеют никакой зависимости от платформы.

Servlet – это класс Java, который выполняется внутри Джава VM:

  1. Контейнер веб-утилиты вида Tomcat начинает загрузку сервлета. Это происходит при первом обращении или в процессе запуска сервера согласно установленным конфигурационным параметрам.
  2. Servlet загружается и остается в подобном состоянии до тех пор, пока не будет произведена явная выгрузка.
  3. Возможно отключение посредством остановки контейнера.

Java Servlets имеет программный интерфейс, позволяющий вести обработку запросов на низком уровне. Обработка ведется в едином процессе посредством создания потоков внутри. Код предстоит составлять так, чтобы он был безопасным.

JSP – нюансы

Еще один вариант, применяемый для приложений, написанных на Джаве – это JSP. Разработка здесь больше не требует особых временных затрат. Связано это с тем, что программисту предстоит работать с шаблонами.

JSP – шаблоны страничек, похожих на ASP и PHP. Привязки к ПО и аппаратным платформам нет. Производительность ограничена:

  • странички нужно компилировать в сервлеты, но только при первом обращении;
  • servlets обрабатываются в JVM.

Основная нагрузка при реализации за счет кластеризации переходит на аппаратное обеспечение.

PHP – что такое?

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

PHP-страницы – это обычные HTML, включающие в себя особые тэги. Каждый такой элемент виден сразу. Он имеет форму <?php?>.

Java Web Application Tutorial for Beginners

Java Web Application Tutorial for Beginners

While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.

Java Web Application is used to create dynamic websites. Java provides support for web application through Servlets and JSPs. We can create a website with static HTML pages but when we want information to be dynamic, we need web application.

Java Web Application

The aim of this article is to provide basic details of different components in Web Application and how can we use Servlet and JSP to create our first java web application.

Web Server and Client

Web Server is a software that can process the client request and send the response back to the client. For example, Apache is one of the most widely used web servers. Web Server runs on some physical machine and listens to client request on a specific port. A web client is a software that helps in communicating with the server. Some of the most widely used web clients are Firefox, Google Chrome, Safari, etc. When we request something from the server (through URL), the web client takes care of creating a request and sending it to the server and then parsing the server response and present it to the user.

HTML and HTTP

Web Server and Web Client are two separate softwares, so there should be some common language for communication. HTML is the common language between server and client and stands for HyperText Markup Language. Web server and client needs a common communication protocol, HTTP (HyperText Transfer Protocol) is the communication protocol between server and client. HTTP runs on top of TCP/IP communication protocol. Some of the important parts of the HTTP Request are:

  • HTTP Method — action to be performed, usually GET, POST, PUT etc.
  • URL — Page to access
  • Form Parameters — similar to arguments in a java method, for example user,password details from login page.

Sample HTTP Request:

Some of the important parts of HTTP Response are:

  • Status Code — an integer to indicate whether the request was success or not. Some of the well known status codes are 200 for success, 404 for Not Found and 403 for Access Forbidden.
  • Content Type — text, html, image, pdf etc. Also known as MIME type
  • Content — actual data that is rendered by client and shown to user.

Sample HTTP Response:

MIME Type or Content Type: If you see above sample HTTP response header, it contains tag “Content-Type”. It’s also called MIME type and server sends it to the client to let them know the kind of data it’s sending. It helps the client in rendering the data for the user. Some of the most used mime types are text/html, text/xml, application/xml etc.

Understanding URL

URL is the acronym of Universal Resource Locator and it’s used to locate the server and resource. Every resource on the web has its own unique address. Let’s see parts of the URL with an example. https://localhost:8080/FirstServletProject/jsps/hello.jsp https:// — This is the first part of URL and provides the communication protocol to be used in server-client communication. localhost — The unique address of the server, most of the times it’s the hostname of the server that maps to unique IP address. Sometimes multiple hostnames point to same IP addresses and web server virtual host takes care of sending a request to the particular server instance. 8080 — This is the port on which server is listening, it’s optional and if we don’t provide it in URL then request goes to the default port of the protocol. Port numbers 0 to 1023 are reserved ports for well-known services, for example, 80 for HTTP, 443 for HTTPS, 21 for FTP, etc. FirstServletProject/jsps/hello.jsp — Resource requested from server. It can be static html, pdf, JSP, servlets, PHP etc.

Why we need Servlet and JSPs?

Web servers are good for static contents HTML pages but they don’t know how to generate dynamic content or how to save data into databases, so we need another tool that we can use to generate dynamic content. There are several programming languages for dynamic content like PHP, Python, Ruby on Rails, Java Servlets and JSPs. Java Servlet and JSPs are server-side technologies to extend the capability of web servers by providing support for dynamic response and data persistence.

Java Web Development

First Web Application with Servlet and JSP

We will use “Eclipse IDE for Java EE Developers” for creating our first servlet application. Since servlet is a server-side technology, we will need a web container that supports Servlet technology, so we will use the Apache Tomcat server. It’s very easy to set up and I am leaving that part to yourself. For ease of development, we can add configure Tomcat with Eclipse, it helps in easy deployment and running applications. Go to Eclipse Preference and select Server Runtime Environments and select the version of your tomcat server, mine is Tomcat 7. Eclipse-with-Tomcat Provide the apache tomcat directory location and JRE information to add the runtime environment. Now go to the Servers view and create a new server like below image pointing to the above-added runtime environment. Eclipse-New-Server-Tomcat Note: If Servers tab is not visible, then you can select Window > Show View > Servers so that it will be visible in Eclipse window. Try stopping and starting the server to make sure it’s working fine. If you have already started the server from the terminal, then you will have to stop it from the terminal and then start it from Eclipse else it won’t work perfectly. Now we are ready with our setup to create the first servlet and run it on tomcat server. Select File > New > Dynamic Web Project and use below image to provide runtime as the server we added in last step and module version as 3.0 to create our servlet using Servlet 3.0 specs. First-Servlet-dynamic-web-project You can directly click the Finish button to create the project or you can click on Next buttons to check for other options. Now select File > New > Servlet and use below image to create our first servlet. Again we can click finish or we can check other options through the next button. first-servlet When we click on the Finish button, it generates our Servlet skeleton code, so we don’t need to type in all the different methods and imports in servlet and saves us time. Now we will add some HTML with dynamic data code in doGet() method that will be invoked for HTTP GET request. Our first servlet looks like below.

Before Servlet 3, we need to provide the url pattern information in web application deployment descriptor but servlet 3.0 uses java annotations that is easy to understand and chances of errors are less. Now chose Run > Run on Server option from servlet editor window and use below images for the options. servlet-eclipse-server servlet-eclipse-server-webapps After clicking finish, the browser will open in Eclipse and we get following HTML page. first-servlet-run You can refresh it to check that Date is dynamic and keeps on changing, you can open it outside of Eclipse also in any other browser. So servlet is used to generate HTML and send it in response, if you will look into the doGet() implementation, we are actually creating an HTML document as writing it in response PrintWriter object and we are adding dynamic information where we need it. It’s good for a start but if the response is huge with a lot of dynamic data, it’s error-prone and hard to read and maintain. This is the primary reason for the introduction of JSPs. JSP is also server-side technology and it’s like HTML with additional features to add dynamic content where we need it. JSPs are good for presentation because it’s easy to write because it’s like HTML. Here is our first JSP program that does the same thing as the above servlet.

If we run above JSP, we get output like below image. first-jsp-run The final project hierarchy looks like below image in Eclipse. project-hierarchy-servlet

Download FirstServlet Project

We will look into Servlets and JSPs in more detail in future posts but before concluding this post, we should have a good understanding of some of the aspects of Java web applications.

Web Container

Tomcat is a web container, when a request is made from Client to web server, it passes the request to web container and it’s web container job to find the correct resource to handle the request (servlet or JSP) and then use the response from the resource to generate the response and provide it to web server. Then the webserver sends the response back to the client. When web container gets the request and if it’s for servlet then container creates two Objects HTTPServletRequest and HTTPServletResponse. Then it finds the correct servlet based on the URL and creates a thread for the request. Then it invokes the servlet service() method and based on the HTTP method service() method invokes doGet() or doPost() methods. Servlet methods generate the dynamic page and write it to the response. Once servlet thread is complete, the container converts the response to HTTP response and send it back to the client. Some of the important work done by web container are:

  • Communication Support — Container provides easy way of communication between web server and the servlets and JSPs. Because of the container, we don’t need to build a server socket to listen for any request from the webserver, parse the request and generate a response. All these important and complex tasks are done by container and all we need to focus is on our business logic for our applications.
  • Lifecycle and Resource Management — Container takes care of managing the life cycle of servlet. The container takes care of loading the servlets into memory, initializing servlets, invoking servlet methods and destroying them. The container also provides utility like JNDI for resource pooling and management.
  • Multithreading Support — Container creates a new thread for every request to the servlet and when it’s processed the thread dies. So servlets are not initialized for each request and save time and memory.
  • JSP Support — JSPs doesn’t look like normal java classes and web container provides support for JSP. Every JSP in the application is compiled by container and converted to Servlet and then container manages them like other servlets.
  • Miscellaneous Task — Web container manages the resource pool, does memory optimizations, run garbage collector, provides security configurations, support for multiple applications, hot deployment and several other tasks behind the scene that makes our life easier.

Web Application Directory Structure

Java Web Applications are packaged as Web Archive (WAR) and it has a defined structure. You can export above dynamic web project as WAR file and unzip it to check the hierarchy. It will be something like below image. WAR-directory-structure

Deployment Descriptor

web.xml file is the deployment descriptor of the web application and contains a mapping for servlets (prior to 3.0), welcome pages, security configurations, session timeout settings, etc. Thats all for the java web application startup tutorial, we will explore Servlets and JSPs more in future posts. Update: Next tutorial in this series is Java Servlets Tutorial

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Похожие статьи