Джава – распространенный язык программирования. Он относится к объектно-ориентированным. Обладает общим назначением. Это значит, что при помощи Java можно писать самые разные утилиты – от мелких «офисных» программ до сложных игр и веб-серверных приложений.
Инструментарий Java относительно богат. Он включает в себя разнообразные библиотеки и фреймворки на все случаи жизни. Отлично совмещается со всеми операционными системы и годится для кроссплатформенной разработки.
Довольно важной частью Джавы являются сервлеты. Именно о них зайдет речь далее в статье. Соответствующий элемент пригодится тем, кто планирует посвятить работу веб-серверной разработке и браузерному контенту.
Несколько слов о Джаве
Джава – удобный и практичный высокоуровневый язык программирования. Необходимую информацию по нему «с нуля» можно отыскать не только среди официальной документации, но и просто в Сети. Там полно обучающих видео, по которым удастся быстро освоить нюансы Java.
Использовать соответствующий язык очень удобно. Он обладает следующими нюансами:
- наличие собственной среды разработки;
- кроссплатформенность;
- простота применения;
- универсальность;
- достойный уровень безопасности;
- совместимость с разными базами данных;
- поддержка клиент-серверной разработки;
- богатый функционал и инструментарий;
- хорошо читаемый код;
- понятный даже новичку синтаксис.
Java задействован в случае необходимости создания программного обеспечения, работающего через интернет. Входит в состав большинства популярных движков, что делает этот ЯП максимально удобным и практичным.
Сервлет – понятие
Сервлет (servlet) – это интерфейс Java, использование которого будет расширять функциональные возможности имеющегося сервера. Взаимодействует с клиентами путем использования методы «запросы и ответы».
Servlet – это специализированные приложения, работающие на веб-сервере или сервере приложений. Действуют в качестве промежуточного уровня между запросами, которые поступают из браузера или HTTP-клиента, а также базами данных или софтом на HTTP-сервере.
Использования
Servlet позволяет:
- собирать информацию от пользователей через специализированные формы веб-страничек;
- представлять записи из БД или иного источника;
- создавать веб-странички динамическим способом.
Servlets часто заменяют программное обеспечение, реализованное через CGI. Только у сервлетов есть несколько непревзойденных преимуществ перед соответствующими интерфейсами.
Сильные стороны – почему сервлеты полезны
Если сравнивать CGI-утилиты и сервлеты, то у вторых есть ряд плюсов, которые делают «технологию» предельно полезной:
- высокий уровень производительности;
- выполнение servlet непосредственно в адресном пространстве веб-сервера – не нужно создавать отдельный процесс, чтобы обработать запрос каждого клиента;
- независимость от используемой платформы, благодаря написанию оных на Java;
- диспетчер безопасности предлагает надежную защиту servlet;
- наличие полной функциональности библиотек классов Джавы.
Стоит обратить внимание на то, что данная «технология» выделяется быстродействием. Она не будет сильно «грузить» операционную систему и server при обработке запросов. Ответы системой выводятся в кратчайшие сроки.
Ключевые задачи
Servlet имеет определенный ряд задач, которые он будет выполнять. К таковым принято относить:
- чтение явной информации, которая отправляется браузерами (или clients);
- считывание неявно заданных электронных материалов HTTP-запроса;
- обработка и генерация результатов, включая обращения к базам данных;
- отправка явных данных (документации) интернет-обозревателям;
- формирование и отправка неявного HTTP-ответа браузеру.
Все это необходимо для качественной работы и стабильного функционирования клиент-серверной модели программного обеспечения совершенно разной сложности.
Жизненный цикл
Стоит обратить внимание на то, что весь жизненный цикл сервлета находится под управление контейнера сервлета. Оный задействует интерфейс javax.servlet.Servlet для того, чтобы понимать объекты сервлета, а также манипулирования оным.
Жизненный цикл соответствующей «технологии» проходит в несколько этапов. В основном их 4:
- старт;
- загрузка и инициализация;
- обработка запроса;
- конец.
Каждый этап предусматривает свои ключевые особенности:
- Старт – это загрузка. Сервер осуществляет запуск, контейнер развертывается, после чего происходит загрузка всех сервлетов.
- Инициализация. Здесь servlet инициализируется через вызов метода init(). Метод Servler.init() вызывается контейнеров Servlet для того, чтобы уведомить о том, что соответствующий экземпляр Servlet успешно создан. Оный готов для дальнейшего использования.
- Обработка запросов. Сервлет будет вызывать метод service() для того, чтобы обработать запрос клиента. Он вызывается для информирования сервлета о клиентских запросах.
- Уничтожение. Это – завершающий этап всей операции. Происходит за счет вызова destroy(). Этот метод будет запущен только один раз за все время существования servlet. Отвечает за сообщение о том, что экземпляр «технологии» заканчивается.
Стоит обратить внимание на то, что методы init() и destroy() за весь жизненный цикл будут вызываться только единожды. Сервлет – это своеобразный сборщик мусора JVM. Так завершается жизненный цикл servlet.
О создании – как реализовать
Первое, что нужно знать о рассматриваемой «технологии» — это ее основы и цикл жизни. Данная информация не самая трудная. Далее будут рассмотрены примеры и алгоритмы, которые пригодятся как новичкам, так и продвинутым разрабам.
Для создания servlet необходимо выполнить несколько шагов:
- Продумать и создать структуру каталогов.
- Написать саму «технологию» клиент-серверной модели.
- Провести компиляцию сервлета.
- Добавить сопоставления в документ под названием web.xml.
- Осуществить запуск сервера, а затем провести развертку подготовленного заранее проекта.
- Предоставить (получить) доступ к изучаемой «технологии».
Далее будут рассмотрены наглядные примеры, которые помогут понять принцип работы «методики».
Предварительная подготовка
Для того, чтобы справиться с поставленной задачей, предстоит провести небольшую предварительную подготовку. Особенно это касается тех, кто недавно начал работу на Джава.
В подготовку входит:
- Инициализация и настройка сервера Apache Tomcat.
- Если что-то пошло не так – переустановить Eclipse. Он входит в Tomcat.
- Для любой программы сервлета подготовить три Файла: index.html, файл классов Java, а также web.xml.
Для обучения навыкам работы с «технологией», представленной ранее вниманию, необходимо сначала создать веб-проект динамического характера. Приведенный далее пример предназначается для servlet, который помогает осуществить вход в систему. Процесс будет отображаться в качестве вывода в интернет-обозревателе.
Сначала требуется создать файл index.html:
Далее – осуществить кодирование файла класса Джавы. Итоговый код соответствующего документа выглядит так:
package Edureka;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResp onse;
public class Login extends HttpServlet
{
protected void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
PrintWriter pw=res.getWriter();
res.setContentType("text/html");
String user=req.getParameter("userName");
String pass=req.getParameter("userPassword");
pw.println("Login Success...!")
if(user.equals("edureka") pass.equals("edureka"))
pw.println("Login Success...!");
else
pw.println("Login Failed...!");
pw.close();
}
}
Приведенный выше код позволяет установить условия – если имя пользователя и пароль — это edureka, то появится сообщение об успешном входе в систему. В противном случае в авторизации будет отказано. После того, как написан файл Джава класса, нужно вписать сопоставление в web.xml.
Добавка сопоставления
Для этого требуется запомнить следующие данные:
- Документ web.xml будет находиться в папке WEB-INF рассматриваемой утилиты.
- При отсутствии такового можно кликнуть по дескриптору развертки и щелкнуть по надписи «Создать заглушку дескриптора развертывания».
- После подготовки web.xml потребуется прописать в оном сопоставления.
Выше – пример сопоставления.
Универсальный тип
Стоит обратить внимание на то, что есть независимый от протокола сервлет. Он носит название универсального. Предопределяет метод service(), необходимый для обработки клиентских запросов.
У service() есть два аргумента:
- Объект ServletRequest. Он отвечает за информирование сервлета о запросе, который совершает client.
- Элемент ServletResponse. За счет него осуществляется возврат ответа клиенту.
GenericServlet – это абстрактный класс. Имеет единственный метод service(). Когда происходит создание универсального servlet через расширение класса Generic, нужно предопределять ранее упомянутый метод.
Теперь можно посмотреть, как осуществляется вызов такого сервлета. Для этого необходимо провести кодирование трех документов.
HTML-файл
Здесь потребуется учесть следующее:
- Сначала необходимо создать файл HTML. Он будет отвечать за вызов сервлета.
- Чтобы описанная операция произошла, пользователь должен нажать на ссылку на веб-странице.
- Создавать документ требуется в папке WebContent. Путь к нему – это WebContent/ index.html.
Выше – код, который должен прописать программер в упомянутом ранее файле.
Файл класса
Следующий этап – это прописка универсального сервлета путем расширения класса Generic. Для этого нужно провести предопределение метода service(). Достаточно кликнуть ПКМ по папке src и создать новый файл класса, назвать его общим. Путь будет выглядеть так: Java Resources / src/ default package / generic.java.
Выше – то, как будет выглядеть необходимый для реализации задачи исходный код класса Джавы.
Создание Web
Обнаружить соответствующий файлик удастся по пути: WebContent / WEB-INF / web.xml. Там можно сопоставить servlet с конкретным URL-адресом. Рассматриваемый пример – это вызов странички приветствия. После клика по ссылке в index.html произойдет отображение приветствия в класс Servlet, который был создан ранее.
Остается запустить сервер Tomcat, а затем – активировать servlet. На экране получится желаемый результат. Предложенная информация – все, что нужно знать об универсальных сервлетах. Дальше речь зайдет о концепциях отслеживания сеансов. Это тоже весьма полезная информация, которая пригодится каждому разработчику клиент-серверной утилиты.
Отслеживание сеансов
Сессия означает определенный интервал времени. Отслеживание – это метод поддержки состояния (информации) пользователя. Понятие трактуется также как управление сеансом в пределах сервлета. Каждый раз, когда пользователь обращается к серверу, тот обрабатывает запрос в качестве нового.
Выше – пример того, как выглядит соответствующий процесс. Для распознавания конкретного юзера, требуется всегда проводить отслеживание сеансов.
О файлах cookie
Cookie – это небольшие фрагменты данных. Они сохраняются между несколькими клиентскими запросами. Имеет такой файл:
- значение;
- имя;
- дополнительные атрибуты вроде комментариев;
- путь;
- квалификаторы домена;
- номер версии.
Представлен методом отслеживания сеансов. По умолчанию каждый запрос им будет рассматриваться как новый. Теперь, когда принцип работы файла cookie усвоен, стоит просмотреть, как использовать оный.
Наглядный пример
Пусть будут даны два сервлета. Для них разные коды:
package Edureka;
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/login")
public class MyServlet1 extends HttpServlet{
public void doGet(HttpServletRequest request,nbsp; HttpServletResponse resp onse) {
try{
response.setContentType("text/html");
PrintWriter pwriter = response.getWriter();
String name = request.getParameter("userName");
String password = request.getParameter("userPassword");
pwriter.print("Hello here:"+name);
pwriter.print(" Your Password is: "+password);
//Creating two cookies
Cookie c1=new Cookie("userName",name);
Cookie c2=new Cookie("userPassword",password);
//Adding the cookies to response header
response.addCookie(c1);
response.addCookie(c2);
pwriter.print("
<a href='welcomehere'>View Details</a>");
pwriter.close();
}catch(Exception exp){
System.out.println(exp);
}
}
}
Это – MyServlet1. Для второго документа актуальная кодификация:
Теперь необходимо:
- Создать HTML-форму для файлов cookie.
- Создать XML.
- Добавить в последний все сопоставления.
Можно запускать код и смотреть, что произошло. Именно так функционируют «куки».
Странички сервера Java
Стоит обратить внимание на JSP. Это = технология, которая применяется для веб-приложений. Напоминает сервлеты. Представлено расширением servlet, так как предоставляет больше функциональных возможностей. Страничка JSP включает в себя теги HTML, а также теги JSP. Их проще поддерживать, поэтому можно разделить проектирование и непосредственную разработку.
Сценарии
Когда стало понятно, что такое метод doget, а также examples в коде, можно рассмотреть сценарии. Они позволяют вставлять Джава-код в JSP. Есть несколько типов элементов сценариев:
- Скриптлета. Применяется для обработки и реализации исходного кода Java.
- Выражения. Он позволяет записывать кодификации в выходной поток ответа. Поэтому не нужно осуществлять запись out.print() для записи информации. В основном применяется для того, чтобы печатать значения переменных или методов.
- Объявление. Помогает объявлять поля и методы. Код, написанный внутри тега JSP, будет размещаться за пределами метода service() автоматически сгенерированного сервлета. Память оный при каждом обращении не получает.
Всего этого достаточно для того, чтобы вникнуть в основы сервлетов Java и клиент-серверных моделей. А для того, чтобы лучше понимать, что такое servlet-name servlet-class, example (в коде), а также JSP, стоит посетить дистанционные онлайн курсы. За короткий срок пользователя научат писать программы на Джаве, а также работать с клиент-серверными моделями. По завершении программы юзеру выдадут электронный сертификат, подтверждающий навыки в выбранном направлении.