Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
179
Добавлен:
17.04.2018
Размер:
1.25 Mб
Скачать
      1. Объявления

Объявления (Declarations) предназначены для определения переменных и методов на языке скриптов, которые в дальнейшем используются на странице JSP. Синтаксис declarations имеет следующий вид :

<%! код Java %>

Обычно объявления группируются вверху страницы JSP и содержат объявления всех переменных и методов используемых на странице.

Пример блока объявлений:

<%!

int n = 100;

String temp;

String m = "MIET";

%>

      1. Выражения

Выражения JSP применяются для вывода данных в тело страницы. Все выражения, вне зависимости от сложности их содержимого, вычисляются в один результат или число. Выражения не должны заканчиваться «;». Фактически результат выражения вставляется как аргумент в response.println.

Примеры выражений:

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

Наш ВУЗ: <%= 'МИЭТ' %>

      1. Скриплеты

Скриплеты JSP применяются для вставки исполняемого кода на Java. Скриплеты могут производить вычисления и осуществлять вывод

Пример скриплета, выводящего все поля и их значения переданные из формы в страницу JSP

<%@ page import="java.util.*" %>

<h1>Получены данные</h1>

<%

for (Enumeration<String> e = request.getParameterNames(); e.hasMoreElements();) {

String name = e.nextElement();

out.println(name+"="+request.getParameter(name)+"<br>");

}

%>

<hr>

    1. Объекты request, response, cookie, session

      1. Request

Объект request предназначен для получения данных приходящих в запросе: заголовков, полей (форм), ключиков (cookies) и других данных.

Основными методами для получения данных являются:

request.getParameterNames() – получение списка всех полей формы

request.getParameter(Имя) – получение значения поля формы по имени поля

request.getCookies – получение массива ключиков

request.getHeaderNames() – получение списка заголовков вопроса

request.getHeader(Имя) – получение содержания поля заголовка по имени

Для перебора списка полей формы и заголовков требуется подключение gfrtnf java.util.*

Полный список методов объекта request приведен в приложении 1.

Листинг 3. Пример вывода таблицы со значениями всех заголовков запроса

<%@ page import="java.io.*,java.util.*" %>

<html>

<body>

<table width="100%" border="1" align="center">

<tr bgcolor="#949494">

<th>Header Name</th><th>Header Value(s)</th>

</tr>

<%

Enumeration headerNames = request.getHeaderNames();

while(headerNames.hasMoreElements()) {

String paramName = (String)headerNames.nextElement();

out.print("<tr><td>" + paramName + "</td>\n");

String paramValue = request.getHeader(paramName);

out.println("<td> " + paramValue + "</td></tr>\n");

}

%>

</table>

</body>

</html>

      1. Response

Объект response используется для вывода информации в ответ сервера на запрос клиента. В JSP этот объект часто используется в виде out.println(“текст”), где out неявно созданный от response объект PrintWriter. Синтаксис создания: PrintWriter out = response.getWriter().

Основным методами объекта out является print и println.Пример использования out можно посмотреть в листинге 3, а полный список методов объекта response приведен в приложении 1.

      1. Cookie

Объект cookie, как следует из его названия, предназначен для работы с ключиками. Для чтения данных этот объект использует массив объектов ключиков, возвращаемый методом requet.getCookies. Для установки значения ключика, объект может использоваться индивидуально — см. Листинг 4.

Основными методами этого объекта являются:

getName – получение имени ключика

getValue — получениезначения ключика

setValue — установка нового значения ключика

Полный список методов объекта cookie приведен в приложении 1.

Листинг 4. Вывод значений всех ключиков

<%

//Выбор значений всех ключиков

Cookie cookies [] = request.getCookies ();

for (int i = 0; i < cookies.length; i++) {

out.println(cookies[i].getName()+"="+cookies[i].getValue()+"<br>");

}

%>

При установки значения ключика следует учитывать, что оно должно быть установлено до вывода содержимого страницы т.е. до тега <html>. Добавление ключика к ответу сервера производится с помощью метода addCookie объекта request см. листинг 5.

Листинг 5. Установка значения ключика

<%

Cookie cookie = new Cookie("key","value");

cookie.setMaxAge(60*60*24);

response.addCookie(cookie);

%>

      1. Session

Объект session служит для организации взаимодействия между клиентом и сервером и между jsp страницами на сервере в рамках одной сессии.

Для включения режима отслеживания сессиии необходимо в jsp страницу добавить директиву <%@page session="true" %>. После этого в одной странице JSP можно читать данные, установленные в другой JSP странице и получать прочие данные сессии. Полный список методов и свойств объекта session приведен в приложении 1.

Листинг 6. Пример установки и чтения значений в разных JSP файлах

Файл request.jsp

<%@page session="true" %>

<%

//Устанавливаем переменную в сессию

session.setAttribute("userID", 10);

%>

Файл response.jsp

<%@page session="true" %>

<% //Читаем переменную из сессии %>

Получено из сессии <%= session.getId()%>: userID = <%= session.getAttribute("userID") %>

Соседние файлы в папке Интернет технологии