JSP против сервлетов
Сервлет - это программный компонент на стороне сервера, написанный на Java и работающий в совместимой контейнерной среде, известной как контейнер Servelt (например, Apache Tomcat). Сервлеты преимущественно используются при реализации веб-приложений, которые генерируют динамические веб-страницы. Однако они могут программно генерировать любой другой тип контента, такой как XML, текст, изображения, звуковые клипы, PDF, файлы Excel.
Сервлет, написанный для генерации некоторого HTML, может выглядеть так:
общедоступный класс MyServlet расширяет HttpServlet {
protected 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.