
- •Интернет-программирование
- •ИП. Сервлеты и JSP
- •ИП. Сервлеты и JSP
- •ИП. Сервлеты и JSP
- •ИП. Сервлеты и JSP. Отличия в работе
- •ИП. Сервлеты и JSP. Сервлет-контейнеры
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура сервлетов
- •ИП. Сервлеты и JSP. Структура сервлетов
- •ИП. Сервлеты и JSP. Стуктура сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов. Жизненный цикл
- •ИП. Сервлеты и JSP. Работа сервлетов.
- •ИП. Сервлеты и JSP. Работа сервлетов.
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов. Пример web.xml файлаМИЭТ, 2017
- •ИП. Сервлеты и JSP. Идея JSP
- •ИП. Сервлеты и JSP. Архитектура приложения JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP. Атрибуты директив
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
ИП. Сервлеты и JSP. Cинтаксис JSP |
МИЭТ, 2017 |
Комментарии
Комментарии заключаются в теги <%-- Текст комментария --%> и являются многострочными.
Пример:
<%--
Document : response
Created on : 05.05.2017, 15:19:39 Author : Андрей
--%>
ИП. Сервлеты и JSP. Cинтаксис JSP |
МИЭТ, 2017 |
Директивы
Директивы содержат инструкции, действия которых распространяются на весь документ и содержат информацию, необходимую на стадии трансляции.
Синтаксис директивы:
<%@ Тип_директивы Имя_Атрибута="значение" %>
Существует альтернативная запись директив в xml-стиле, предназначенная для подключения в jsp страницу расширений
<jsp:directive.Тип_директивы Имя_Атрибута="Значение" />
Директива может иметь неколько атрибутов и применяться в документе несколько раз.
Существует три типа директив:
page (страница)
include (включить)
taglib (библиотека тегов)

ИП. Сервлеты и JSP. Cинтаксис JSP. Атрибуты директив |
МИЭТ, 2017 |
||
Имя атрибута |
Значение |
Описание |
|
language |
Строка |
Определяет язык, используемый в скриптлетах файла JSP. |
|
|
|
По умолчанию - "java" |
|
extends |
Строка |
Задает суперкласс для сервлета. |
|
import |
Строка |
Определение импортируемых пакетов., например: |
|
|
|
<%@ page import="java.util.* %> |
|
Session |
true / false Включение / выключение сесии |
|
|
Buffer |
none / кБ. |
Задает размер буфера для JspWriter out. Значение принимаемое по |
|
|
|
умолчанию зависит от настроек сервера, и не должно быть > 8 кБ. |
|
autoFlush |
true / false |
Определяет, должен ли буфер освобождаться автоматически, когда |
|
|
|
он переполнен или произошла ошибка |
|
isThreadSafe |
true / false Многопоточное (true-один экземпляр сервлета на все |
||
|
|
запросы) или однопоточное (false — на каждый запрос свой |
|
|
|
экземпляр) |
|
info |
Строка |
Определяет строку информации о странице JSP, которая будет |
|
|
|
доступна с помощью метода Servlet.getServletInfo () |
|
errorPage |
Строка |
URL страницы, которая должна выводиться в случае возможных |
|
|
|
ошибок, вызывающих исключения |
|
isErrorPage |
true / false |
Сигнализирует о том, может ли эта страница использоваться для |
|
|
|
обработки ошибок для других JSP страниц. |
|
contentType |
Строка |
Определяет кодировку для страницы JSP и ответа, а также MIME-тип |
|
|
|
ответа |
|
pageEncoding |
Строка |
Определяет кодировку символов страницы JSP. По умолчанию |
ИП. Сервлеты и JSP. Cинтаксис JSP |
МИЭТ, 2017 |
Директива include
Директива include позволяет вставлять текстовый файл (например, html) или java-код в процессе трансляции страницы JSP в сервлет.
Вставляемый текст интерпретируется как есть на том месте, где он расположен. Директива include имеет один атрибут — file, который содержит относительный путь к включаемому файлу.
Синтаксис директивы include:
<%@ include file="Относительный URI страницы" %>
Пример использования директивы JSP для подключения файла с текстом копирайтов:
<%@ include file="copyright.html" %>
ИП. Сервлеты и JSP. Cинтаксис JSP |
МИЭТ, 2017 |
Директива taglib
Директива taglib объявляет, что данная страница JSP использует библиотеку тегов, уникальным образом идентифицируя ее с помощью URI, и ставит в соответствие префикс тега, с помощью которого возможны действия в библиотеке. Если контейнер не может найти библиотеку тегов, возникает фатальная ошибка трансляции
.
Директива taglib имеет следующий синтаксис:
<%@ taglib uri="URI библиотеки тегов" prefix="Имя_Префикса" %>
Префикс "Имя_Префикса" используется при обращении к библиотеке. Пример использования библиотеки тегов newtags:
<%@ taglib uri="http://www.miet.ru/newtags.tgl" prefix="miet" %>
. . .
<miet:myTag>
В данном примере библиотека тегов имеет URI-адрес "http://www.miet.ru/newtags.tgl", в качестве префикса назначена строка miet, которая используется в странице JSP при обращении к элементам библиотеки тегов.
ИП. Сервлеты и JSP. Cинтаксис JSP |
МИЭТ, 2017 |
Объявления
Объявления (Declarations) предназначены для определения переменных и методов на языке скриптов, которые в дальнейшем используются на странице JSP. Синтаксис declarations имеет следующий вид :
<%! код Java %>
Обычно объявления группируются вверху страницы JSP и содержат объявления всех переменных и методов используемых на странице.
Пример блока объявлений:
<%!
int n = 100; String temp;
String m = "MIET"; %>
ИП. Сервлеты и JSP. Cинтаксис JSP |
МИЭТ, 2017 |
Выражения
Выражения JSP применяются для вывода данных в тело страницы. Все выражения, вне зависимости от сложности их содержимого, вычисляются в один результат или число. Выражения не должны заканчиваться «;». Фактически результат выражения вставляется как аргумент в response.println.
Примеры выражений:
Текущее время: <%= new java.util.Date() %> Наш ВУЗ: <%= 'МИЭТ' %>
ИП. Сервлеты и JSP. Cинтаксис JSP |
МИЭТ, 2017 |
Скриплеты
Скриплеты 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>");
}
%>
ИП. Сервлеты и JSP. Компоненты JSP |
МИЭТ, 2017 |
JavaBeans
Технология JavaBeans реализует сборку приложений из компонентов, при котором разработчик должен знать только сервисы компонентов; детали реализации компонентов при этом сокрыты (инкапсулированы).
JavaBeans это повторно используемые программные компоненты, которыми можно управлять, используя графические конструкторы и средства среды разработки
С точки зрения реализации JavaBean это классы Java написанные с собюдением специальных правил и специальным образом подключаемые на странице
ИП. Сервлеты и JSP. Компоненты JSP |
МИЭТ, 2017 |
Правила описания класса JavaBeans
Класс должен иметь конструктор без параметров, с модификатором доступа public. Такой конструктор позволяет инструментам создать объект без дополнительных сложностей с параметрами.
Свойства класса должны быть доступны через get, set и другие методы (так называемые методы доступа), которые должны подчиняться стандартному соглашению об именах.
Класс должен быть сериализуем. Это даёт возможность надёжно сохранять, хранить и восстанавливать состояние bean независимым от платформы и виртуальной машины способом.
Класс должен иметь переопределенные методы equals(), hashCode() и toString().