Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection_servlets.doc
Скачиваний:
30
Добавлен:
23.02.2016
Размер:
356.35 Кб
Скачать

Елементи сценарію jsp

Технологія серверних сторінок JavaServer Pages (JSP) надає можливість змішувати звичайні, статичні HTML-сторінки з динамічно генерованим вмістом, отриманим із сервлетів. Динамічний вміст розміщується у спеціальних тегах, більшість з яких починається символом <%, а завершуються символом %>. Приклад фрагменту сторінки JSP, результатом звернення до якої за URL-адресою http://host/OrderConfirmation.jsp?title=Core+Web+Programming є рядок “Thanks for ordering Core Web Programming” на HTML-сторінці:

Thanks for ordering <i><%= request.getParameter(“title”) %></i>

Елементи сценарію JSP дозволяють вставляти код в сервлет, який генеруватиметься з JSP-сторінки. Існує три види елементів:

  1. Вирази (expressions) виду <%= expression %>, які обчислюються на сервері, а отримані значення вставляються в сторінку HTML, створену сервлетом.

  2. Скриплети (scriplets) виду <% code %>, які вставляються в метод _jspService сервлету (який викликається методом service).

  3. Оголошення (declarations) виду <%! code %>, які вставляються у тіло класу сервлету за межами будь-яких його методів.

Вирази jsp

Вирази JSP використовуються, щоб вставити обчислене значення безпосередньо у HTML-сторінку. Вираз обчислюється, отримане значення перетворюється в рядок, який вбудовується в сторінку. Наприклад, наступний рядок показує дату і час, коли відбувся запит до сторінки:

Current time: <%= new java.util.Date() %>

Для спрощення роботи з виразами можна використовувати ряд наперед визначених змінних, таких як request,response,outта ін. Наприклад:

Your hostname: <%= request.getRemoteHost() %>

Скриплети jsp

Скриплети дозволяють вставити у генерований сервлет довільний Java-код. Вони мають доступ до тих самих змінних, як і вирази. Таким чином, якщо потребується, наприклад, щоб на результуючій сторінці з’явився вивід із скриплету, необхідно використати змінну out:

<%

String query Data = request.getQueryString();

out.println(“Attached GET data: “ + queryData);

%>

У загальному випадку скриплети виконують задачі, які не можна виконати лише засобами JSP-виразів. Ці задачі включають встановлення заголовків відповідей і кодів станів, активізацію побічних ефектів, таких як запис у реєстраційний файл сервера, або оновлення бази даних, або виконання коду, який містить цикли, умови або інші складні конструкції.

Приклад сторінки, яка змінює колір фону на заданий користувачем:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title>Color Testing</title>

</head>

<%

String bgColor = request.getParameter("bgColor");

boolean hasExplicitColor;

if (bgColor != null) {

hasExplicitColor = true;

}

else {

hasExplicitColor = false;

bgColor = "WHITE";

}

%>

<body bgcolor="<%= bgColor %>">

<h2 align="center">Color Testing</h2>

<%

if (hasExplicitColor) {

out.println("You supplied an explicit background color of " +

bgColor + ".");

}

else {

out.println("Using default background color of WHITE. " +

"Supply the bgColor request attribute to try " +

"a standard color, an RRGGBB value, or see " +

"if your browser supports X11 color names.");

}

%>

<form method="GET">

Background color: <input type="Text" name="bgColor">

<input type="submit" value="Ok">

</form>

</body>

</html>

Скриплети використовуються також для умовного включення стандартних HTMLі JSP конструкцій, наприклад:

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

Have a <b>nice</b> day!

<%

}

else { %>

Have a <b>lousy</b> day!

<%

}

%>

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