JSP срещу сървлети
Servlet е софтуерен компонент от страна на сървъра, написан на Java и работи в съвместима контейнерна среда, известна като Servelt контейнер (като Apache Tomcat). Сървлетите се използват предимно при внедряване на уеб приложения, които генерират динамични уеб страници. Те обаче могат да генерират програмно всеки друг тип съдържание като XML, текст, изображения, звукови клипове, PDF, Excel файлове.
Сървлет, написан за генериране на някакъв HTML, може да изглежда така:
публичен клас MyServlet разширява HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) хвърля 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 файловете обаче се превеждат в Servlet от контейнер на Servlet по време на първия достъп до JSP файловете. Писателите на бизнес логика обаче смятат, че сървлетите са по-лесни за работа.
Заявка, получена от уеб приложение, трябва да задейства изпълнението на някаква бизнес логика и след това да генерира получена уеб страница като отговор. В съвременните уеб приложения контролът на цялостния цикъл на обработка на заявките се подава предимно от Servlets. Като последен етап от обработката на заявка, такъв сервлет обикновено предава отговорността за генериране на динамичния HTML на JSP.