Разница между JSP и сервлетами

JSP против сервлетов

Сервлет - это программный компонент на стороне сервера, написанный на Java, который работает в совместимой среде контейнеров, известной как контейнер Servelt (например, Apache Tomcat). Сервлеты преимущественно используются при реализации веб-приложений, генерирующих динамические веб-страницы. Однако они могут программно генерировать любой другой тип контента, такой как XML, текст, изображения, аудиоклипы, PDF, файлы Excel..

Сервлет, написанный для генерации HTML, может выглядеть так:

открытый класс MyServlet расширяет HttpServlet
Защищенный void doGet (запрос HttpServletRequest, ответ HttpServletResponse) создает исключение ServletException, IOException

PrintWriter w = response.getWriter ();
w.write ( «»);
w.write ( «»);

Дата d = новая дата ();
w.write (d.toString ());
w.write ( «»);
w.write ( «»);

Код выше содержит смесь исходного кода HTML и Java. Такое не очень читабельно и ремонтопригодно. JSP, который обозначает JavaServer Pages, предоставляет лучшую альтернативу. Например, ниже приведен фрагмент кода JSP, который приводит к одинаковому выводу:






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

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