JSP как рассматривать технологии?

У меня есть некоторые сомнения по поводу JSP как технологии просмотра. Как я понимаю, JSP в конечном итоге преобразуется в сервлет (через веб-контейнер, если я прочитал правильную документацию).

Исходя из этого у меня есть следующие вопросы:

  1. Если JSP преобразуется в сервлет, то почему это технология представления?

  2. Можно ли писать элементы графического интерфейса (например, кнопки и т. Д.), Используя простые сервлеты? Лично я не видел ни одного кода сервлета, который имеет элементы графического интерфейса, тогда почему JSP (который имеет элементы графического интерфейса) преобразуется в сервлет (и куда переводятся эти элементы графического интерфейса?).

Может кто-нибудь помочь мне понять это? Я сохранял это сомнение и искал в сети, я не в состоянии очистить его.

2 ответа

Решение

JSP - это технология шаблонов (или представление).

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

response.getWriter().println("<html>"); response.getWriter().println("<head>"); response.getWriter().println("<title>foobar</title>");

и т.д. в дополнение к необязательному Java-коду, встроенному в JSP-файл. Так что, если хотите, это немного похоже на PHP-аромат для Java.

Это не сверхчистое MVC-разделение, если вы не работаете слишком осторожно и не добавляете Java-код в свой HTML.

Вы можете выводить GUI-элементы в чистых сервлетах, как я написал выше (или с более элегантным кодом). Однако рендеринг JSP - более чистый подход MVC.

см. Страницы Java Server в Википедии

Вы можете записать все разделы MVC (Model, View, Controller) в JSP. Но это не полезно и безопасно.

Если вы хотите использовать JSP, я предлагаю вам использовать Spring MVC, Spring Security, JSTL и CSS Framework (Bootstrap и т. Д.).

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

Другие вопросы по тегам