JavaRush /Курсы /JSP & Servlets /Вставки скриптов в JSP

Вставки скриптов в JSP

JSP & Servlets
13 уровень , 2 лекция
Открыта

Скриптлеты <%

Что вообще можно вставить в JSP-файл?

Во-первых — Java-код. Если ты хочешь вставить Java-код в свой JSP, то общий формат задается шаблоном:

 <%
	Java-код
 %>

Можно разбивать такой код на несколько частей:

 <%
   Начало Java-кода
 %>
  HTML-код
<%
   Конец Java-кода
 %>

Пример:


    <html> 
    <body> 
	<%
    	double num = Math.random(); if (num > 0.95) {
     %>
         <h2> Ты счастливчик, user!</h2><p>(<%= num %>)</p>
 	<%
   	 } else {
     %> 
         <h2> Сегодня не твой день, user!</h2><p>(<%= num %>)</p>
 	<%  } %> </body> </html> 

Выражение <%=

Также в JSP-файл можно вставить любое вычисляемое выражение. При этом JSP-парсер сам позаботится о том, чтобы оно не просто вычислялось, но и присваивалось, куда нужно. Выражение внутри кода задается шаблоном:

 <%= выражение %>

Обрати внимание, что точку с запятой тут ставить не нужно.

Пример JSP-сервлета с несколькими выражениями:

<p>Корень из 10 равен <%= Math.sqrt(10) %></p>
<h5><%= item[10] %></h5>
<p>Текущее время: <%=  new java.util.Date() %></p>

Этот код будет преобразован в такой Java-код:


out.write("<р>");
out.write("Корень из 10 равен ");
out.print( Math.sqrt(10) );
out.write("</p>");
out.write("<h5>");
out.print( item[10] );
out.write("</h5>");
out.write("<p> Текущее время: ");
out.print( new java.util.Date()  );
out.write("</p>");

Важно! В своем Java-коде и выражениях ты можешь использовать предопределённые переменные, такие как request, response, session, out и т. п.

Комментарии (5)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Олег Уровень 111 Expert
5 августа 2023
Что вообще можно вставить в JSP-файл? Если уж отвечать на заданный вопрос, то в JSP-файл можно вставлять следующие элементы: HTML разметку - основа JSP страницы. Стандартные JSP директивы - page, include, taglib и др. Определяют поведение страницы. Скриптлеты <% %> - для вставки многострочного Java-кода на стороне сервера. Выражения <%= %> - для вывода значений Java-выражений. Декларации <%! %> - для объявления классов, методов и полей. Комментарии <%-- --%> - для вставки комментариев в код. EL выражения - ${} - для доступа к данным. Теги JSTL - для работы с выводом и управляющими структурами. Пользовательские теги - созданные теги для генерации контента. Стандартные теги <jsp: > - вроде jsp:include, jsp:param для вставки фрагментов. Стили CSS - для оформления HTML. jQuery и другие JavaScript библиотеки - для клиентской логики. Таким образом, в JSP можно комбинировать HTML, Java код и разметку для построения веб-страниц.
jvatechs Уровень 111 Expert
27 июня 2023
Методы write() и print() в данном контексте используются для вывода данных в ответе HTTP из JSP-страницы. Оба метода служат для записи текста в поток вывода, но есть некоторые различия в их использовании: out.write() - Этот метод позволяет записать строку символов в поток вывода без какой-либо обработки. Вы передаете ему строку в качестве параметра, и она записывается в выходной поток как есть. Метод write() является более общим методом и может использоваться для записи любых данных, включая текст, HTML-теги, JavaScript-код и т.д. out.print() - Этот метод является более удобным в использовании и обеспечивает автоматическую преобразование различных типов данных в их строковое представление. Например, если вы передаете числовое значение, такое как Math.sqrt(10), метод print() автоматически преобразует его в строку перед выводом.
Anonymous #2924427 Уровень 25
17 ноября 2022
Почему где-то "out.write", а где-то "out.print"? Хотя до этого в примерах везде было "out.print"
Roman Robert Уровень 32
21 апреля 2023
если я правильно понял, то для откывашки и закрывашки HTML-элемента мы используем out.write(), а для вычисляемых значений, которые будут помещены в этот элемент, используем out.print() метод
Igor Уровень 1 Expert
13 сентября 2022
Супер короткая лекция. Можно было объединить с двумя первыми :)