Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JAVA лекции.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
86.26 Кб
Скачать

Вопрос 19. Jsp. Структура и организация. Работа с бинами. Класс Session.

JSP – технология, позволяющая веб-разработчикам легко создавать веб-страницы, которые имеют как статические, так и динамические компоненты. Цель JSP – упрощение создания и управления динамическими веб-страницами. JSP позволяет комбинировать HTML код с JAVA кодом в одном документе. JAVA код окружен специальными ярлыками, которые указывают JSP контейнеру, что он должен использовать этот код для генерации сервлета. При первом вызове страницы компоненты, указанные на ней, компилируются и генерируются JSP контейнеров в один или несколько сервлетов.

JSP ярлыки <% … %>

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

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

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

Например, код, служащий для отображения даты и времени:

<html>

<body>

текущее время: <% = new java.util.Date( ) %>

</body>

</html>

Объекты классов HttpServletRequest, HttpSrevletResponse, HttpSession, JSPWriter встроены в JSP спецификацию и атоматически доступны в коде под именами

request

response

session

out

Например:

имя хоста: <% =request.getRemoteHost( ) %>

Фрагмент JSP может содержать смешанный текста HTML и JAVA кода.

<% if (Math.random( ) < 0.5) { %>

Hello

<%} else {%> Good Bye <%}%>

if (Math.random( )<0.5){

out,println(“Hello”);

} else out.println(“Good Bye”);}

Директивы JSP

JSP страница может посылать сообщения соответствующему конейнеру с указаниями какие действия необходимо выполнить. Эти сообщения называются директивами. Форма записи директив:

<% @ директива атрибут = “значение” %>

Наиболее распространенной является директива страницы

<% @ page charset = “Windows-1251”

import = “java.util.*” %>

Директива включения позволяет включать файл в процессе трансляции JSP страницы

<% @ include file = “относительный URL” %>

<% @ include file = “f.html” %>

Использование JavaBeans

технология JSP предлагает широкий выбор средств, облегчающих создание веб-приложений. Тем не менее при использовании этих средств без предварительного планирования код может превратиться в смесь HTML и JAVA кода, который будет сложно анализировать, отлаживать и сопровождать.

Таким образом, важно изолировать код HTML, переместив рабочий код JAVA код в компоненты JavaBeans. Преимущество такого подхода заключается в том, что HTML программист или дизайнер может заниматься разработкой визуальной части, в том время как JAVA программист будет заниматься логикой класса.

Каждая JSP должна иметь соответствующие компоненты JavaBean, выполняющие специфическую для данной страницы логику. Такая JSP страница начинается со следующих утверждений:

<Jsp:useBean id=”Jsp2BeanId”

class = “utitled1Jsp2Bean”/>

<Jsp: setProperty name = “Jsp2BeanId “ property = “*”/>

Оператор Jsp:useBean устанавливает связь между JSP и соотвтетствующем ей Bean компоненотом. Этот оператор дает компилятору JSP команду загрузить класс JSP2Bean из пакета untitled и связать с именем JSP2BeanId.

Второе утверждение:

передает значение всех полей и формы соответствующим одноименным свойствам Bean компонента, то есть свойствам класса будут передаваться значения полей формы.

Пример:

<html>

<Jsp:useBeanId = “Jsp2BeanId” class = “untitled1.Jsp2Bean”/>

<Jsp:setProperty name = “Jsp2BeanId” property “*”/>

<body>

<form method = “post”>

Enter new value: <input name = “sample”><br>

<input type =”submit” name = “submit” value = “submit”><br>

value of Bean property is: <Jsp getProperty name = “Jsp2BeanId” property “sample”/>

</form>

</body>

</html>

Класс Jsp2Bean выглядит следующим образом:

package untitled1;

public class Jsp2Bean{

private String Sample = “Hello”;

public String getSample( ){

return sample;

}

public void setSample(String newValue){

if (newValue != null){

Sample = newValue;

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]