Комментарии в JSP

На JSP странице можно пользоваться двумя видами комментариев. <%----%> и <!---->.

Первый это jsp комментарий, второй это html комментарий.

Пример программы:

Tags JSP <%--Этот комментарий клиент не видит--%>

Откроем код страницы в Chrome нажав F12 и убедимся, что JSP комментария там нет.

Видим, что в коде в браузере присутствует только <!----> комментарий.


Тег <%! %>

Поясним на примере программы:

First JSP <%int x=2,y=2;%> <%private int add(int a, int b){return a+b;}%>

Тег <%= %>

Тег вставляет содержимое в этом теге в pw.write();

Пример программы:

Tags JSP <%!int x=2,y=2;%> <%!private int add(int a, int b){return a+b;}%> <%="hello world"%> <%=add(x,y)%>

Вывод:


Тег <% %>

В этом теге пишеться обычный java код, который окажеться в doGet в сгенерированном по этой jsp странице сервлете.

Например, создадим куки в этом теге, отправим его клиенту в браузер и выведем все куки клиента.

Search Icon

Откуда взялись request и response пока не обращайте внимание, дальше это рассмотрим. Просто знайте, что это те request и response, которые являются параметрами в методе doGet.

Пример программы:

First JSP <% java.io.PrintWriter pw = response.getWriter(); Cookie cookie = new Cookie("someCookieName", "someCookieValue"); response.addCookie(cookie); //и отправить его клиенту Cookie[] allcookies = request.getCookies(); for (Cookie somecookie : allcookies) { pw.println(somecookie.getName() + " = " +somecookie.getValue()); } %>

Вывод:


Тег <%@%>

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

Пример программы:

<%@ page import="java.lang.Math"%> <%@ page session="false"%> <%@ page extends="org.apache.jasper.runtime.HttpJspBase"%> <%@ page errorPage="myErrorPg.html"%> Tags JSP <%! int x=2,y=2; %> <%! private double add(int a, int b){ return Math.pow(a,b); } %> <%= "hello world"%> <%= add(x,y) %>

Вывод:

Еще с помощью этого тега можно включать другую страницу в эту страницу или перенаправлять (jsp версии include() и forward() в сервлете).

Search Icon

Но лучше пользоваться action дерективой jsp:include (о которых поговорим в другом уроке).

Первый вариант хоть и лучше тем, что можно, например, использовать переменные и методы в этом сервлете из включаемого сервлета после того, как мы его включили, но просто лучше не надо 😉

Пример программы:

<%@ page import="java.lang.Math"%> <%@ page session="false"%> <%@ page extends="org.apache.jasper.runtime.HttpJspBase"%> <%@ page errorPage="myErrorPg.html"%> Tags JSP <%@ include file="FirstJSP.jsp"%> <%int x=2,y=2;%> <%private double add(int a, int b){ return Math.pow(a,b);} %> <%="hello world"%> <%=add(x,y)%>

Вывод:

Видим, что страница FirstJSP.jsp включилась два раза.


Методы init(), destroy(), service() в JSP

Вместо методов init(), destroy(), service() в jsp методы  jspInit(), jspDestroy(), _jspService().

Разницы никакой, но _jspService() здесь уже нельзя переопределять.

Давайте переопределим  jspInit() и jspDestroy().

Переопределяются они ясное дело в <%! %> поскольку, как мы помним, init, service и destroy переопределяются за пределами doGet.

Пример программы:

First JSP <%! public void jspInit() { System.out.println("Initcialization"); } public void jspDestroy() { System.out.println("release resources"); } %>

Вывод:

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

Неявные объекты в JSP: session, request и др.

Изучите 9 неявных объектов JSP: session, request, response, out и другие. Примеры работы с объектами в JSP-страницах и их практическое применение в Java веб-разработке.
Time to read: 14

Что такое actionBeans в JSP?

Узнайте, как использовать actionBeans (useBean, setProperty, getProperty) в JSP: создание бинов, управление областью видимости и инициализация. Примеры кода.
Time to read: 17

Паттерн MVC в веб-разработке на Java

Разберитесь с паттерном MVC в Java: создание Model, View и Controller, взаимодействие компонентов и практический пример с JSP. Основы для веб-разработчиков.
Time to read: 16