На JSP странице можно пользоваться двумя видами комментариев. <%----%>
и <!---->
.
Первый это jsp комментарий, второй это html комментарий.
Пример программы:
Откроем код страницы в Chrome нажав F12
и убедимся, что JSP комментария там нет.

Видим, что в коде в браузере присутствует только <!---->
комментарий.
Тег <%! %>
Поясним на примере программы:
Тег <%= %>
Тег вставляет содержимое в этом теге в pw.write()
;
Пример программы:
Вывод:

Тег <% %>
В этом теге пишеться обычный java код, который окажеться в doGet
в сгенерированном по этой jsp странице сервлете.
Например, создадим куки в этом теге, отправим его клиенту в браузер и выведем все куки клиента.
Откуда взялись request
и response
пока не обращайте внимание, дальше это рассмотрим. Просто знайте, что это те request и response, которые являются параметрами в методе doGet.
Пример программы:
Вывод:

Тег <%@%>
С помощью <%@%>
мы можем устанавливать некоторые параметры страницы.
Пример программы:
Вывод:

Еще с помощью этого тега можно включать другую страницу в эту страницу или перенаправлять (jsp версии include()
и forward()
в сервлете).
Но лучше пользоваться action дерективой jsp:include
(о которых поговорим в другом уроке).
Первый вариант хоть и лучше тем, что можно, например, использовать переменные и методы в этом сервлете из включаемого сервлета после того, как мы его включили, но просто лучше не надо 😉
Пример программы:
Вывод:

Видим, что страница FirstJSP.jsp включилась два раза.
Методы init(), destroy(), service() в JSP
Вместо методов init(), destroy(), service() в jsp методы jspInit()
, jspDestroy()
, _jspService()
.
Разницы никакой, но _jspService()
здесь уже нельзя переопределять.
Давайте переопределим jspInit()
и jspDestroy()
.
Переопределяются они ясное дело в <%! %>
поскольку, как мы помним, init, service и destroy переопределяются за пределами doGet
.
Пример программы:
Вывод:

Как видим, при переходе на страницу был вызван jspInit
. Если что то изменить в коде страницы и перейти на нее, снова вызовется jspDestroy
. Это случилось.