Java Server Pages (JSP)


The Presentation inside:

Slide 0

Java Server Pages (JSP)


Slide 1

JSP Позволяет веб разработчикам динамически генерировать HTML, XML - и другие веб страницы. Страницы компилируются JSP-компилятором в сервлеты, представляющие собой Java-классы, которые выполняются на сервере. Включает в себя JSTL(JavaServer Pages Standard Tag Library) и JavaServer Faces


Slide 2

<?xml version="1.0" encoding="UTF-8"?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"> <jsp:directive.page contentType="application/xhtml+xml; charset=UTF-8" /> <jsp:output doctype-root-element="html" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" omit-xml-declaration="true"/> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>HWA sample title</title> </head> <body> <jsp:scriptlet> out.print("Hello, world!"); </jsp:scriptlet> </body> </html> </jsp:root>


Slide 3

Типы конструкций JSP Элементы скриптов позволяют указать код на языке Java, который впоследствии станет частью в конечный сервлет. Директивы дают возможность управлять всей структурой сервлета. Действия служат для задания существующих используемых компонентов, а также для контроля поведением движка JSP.


Slide 4

Неявные объекты request – Объект, содержащий запрос клиента. Относится к классу javax.servlet.ServletRequest или другому наследующему его классу. response – Объект, содержащий запрос клиента. Относится к классу javax.servlet.ServletResponse или другому наследующему его классу. out – Объект типа PrintWriter, содержащий выходной поток сервлета. Информация посылаемая в этот поток будет передана клиенту. Объект является экземпляром класса javax.servlet.jsp.JspWriter. session – Объект, создаваемый контейнером для идентификации клиента, а также хранения персональных HTTP объектов. Создается контейнером для протокола и является экземпляром класса javax.servlet.http.HttpSession. application – Объект типа ServletContext, связанный с конфигурацией сервлета, соответствующего данной JSP странице. config – Объект, связанный с конфигурацией сервлета. Является экземпляром класса javax.servlet.ServletConfig. pageContext – Объект, определяющий контекст страницы JSP page – Объект, связанный с обработкой данной страницы.


Slide 5

Конструкции JSP


Slide 6

Выражения JSP <%= Выражение на Java %> Текущее время: <%= new Java.util.Date() %> Имя вашего хоста: <%= request.getRemoteHost() %> Скриплеты JSP <% Код на Java %> <% String queryData = request.getQueryString(); out.println("Дополнительные данные запроса: " + queryData); %> <% if (Math. random () < 0.5) { %> <В>Удачного</В> Вам дня! <% } else { %> <В>Не удачного</В> Вам дня! <% } %> После преобразования: if (Math. random () < 0.5) { out.println ( "<В>Удачного</В> вам дня!"); } else { out.println ( "<В>Не удачного</В> вам дня!"); } Объявления JSP <% ! Код на Java %> <% ! private int accessCount = 0; %> Количество обращений к странице с момента загрузки сервера: <%= ++accessCount %>


Slide 7

Директива JSP page <%@ директива атрибут="значение" %> <%@ директива атрибут1="значение1" атрибут2="значение2« … атрибутN="значениеN" %> <%@ page import = "Java.util .*" %> <%@ page contentType="text/plain" %> Директива JSP include <%@ include filе="относительный url" %> <%@ include file="/navbar.html" %> Директива JSP taglib – позволяет создавать пользовательские теги. Директивы JSP


Slide 8

Атрибуты директивы page


Slide 9

Пример JSP-страницы <HTML> <HEAD> ... </HEAD> <BODY BGCOLOR="#FDF5E6" TEXT="#000000 " LINK="#OOOOEE" VLINK="#551A8B" ALINK="#FFOOOO"> <CENTER> <TABLE BORDER=5 BGCOLOR="#EF8429"> <TR><TH CLASS = "TITLE">Использование JavaServer Pages</TABLE> </CENTER> Некое динамическое содержание созданное с использованием различных механизмов JSP: <UL> <LI><В>Выражение. </B><BR> Имя вашего хоста: <%= request . getRemoteHost () %>. <Ll><B>Scriptlet . </B><BR> <% out.println ( "Дополнительные данные запроса: " + request.getQueryString ()); %> <LI><В>Объявление (совместно с выражением) . </B><BR> <%! private int accessCount = 0; %> Количество обращений к странице с момента загрузки сервера: <%= ++accessCount %> <LI><В>Директива (совместно с выражением) . </B><BR> <%@ page import = "java.util.*" %> Текущая дата: <%= new Date() %> </UL> </BODY> </HTML>


Slide 10

Действия Действия JSP используют конструкции с синтаксисом XML для управления работой движка сервлета. jsp : include - Подключает файл в момент запроса страницы. jsp : useBean - Поиск или создание нового экземпляра JavaBean. jsp : set Property - Установка свойств JavaBean. jsp : getProperty - Вставить свойство JavaBean в поток вывода. jsp : forward - Перенаправляет запрос на другую страницу. jsp : plugin - Генерирует код (в зависимости от типа используемого браузера), который создает тэг OBJECT или EMBED для Java plugin.


Slide 11

Действие jsp : include <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> ... </HEAD> <BODY BGCOLOR="#FDF5E6" TEXT="#000000" LINK="#OOOOEE" VLINK="#551A8B" ALINK="#FFOOOO"> <CENTER> <TABLE BORDER=5 BGCOLOR="#EF8429"> <TRXTH CLASS = "TITLE"> Новости на JspNews . com</TABLE> </CENTER> <P> Вот фрагменты нaших четырех самых популярных статей: <OL> <LI><jsp: include page="news/Iteml . html" flush="true"/> <LI><jsp: include page="news/Item2 . html" flush="true"/> <LI><jsp: include page="news/Item3 . html" flush="true"/> </OL> </BODY> </HTML>


Slide 12

Действие jsp : useBean <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> ... </HEAD> <BODY> <CENTER> <TABLE BORDER=5><TR><TH CLASS="TITLE"> Многократное использование JavaBeans в JSP</TABLE> </CENTER> <P> <jsp:useBean id="test" class="hall.SimpleBean" /> <jsp: setProperty name="test" property= "message" value="Привет, WWW" /> <Н1>Сообщение: <I> <jsp:getProperty name="test" property="message" /> <I>Сообщение: <H1> </BODY> </HTML> SimpleBean.java package hall; public class SimpleBean { private String message = “Текст сообщения не задан” ; public String getMessage() {return (message) ; } public void setMessage (String message) { this. message = message; } }


Slide 13

Пример <HTML> <BODY bgcolor="white"> <FORM TYPE=POST ACTION=checkresult.jsp> <BR><font size=5 color="red">Check all Favorite fruits: <BR ><input TYPE=checkbox name=fruit VALUE=apples> Apples <BR><input TYPE=checkbox name=fruit VALUE=grapes> Grapes <BR><input TYPE=checkbox name=fruit VALUE=oranges> Oranges <BR><input TYPE=checkbox name=fruit VALUE=melons> Melons <BR><br> <INPUT TYPE=submit name=submit Value="Submit"> </font> </FORM> </BODY> </HTML>


Slide 14

Пример JSP-страницы <html><body bgcolor="white"> <font size=5 color="red"> <%! String[] fruits; %> <jsp:useBean id="foo" scope="page" class="checkbox.CheckTest" /> <jsp:setProperty name="foo" property="fruit" param="fruit" /> <hr> The checked fruits (got using request) are: <br> <% fruits = request.getParameterValues("fruit"); %> <ul> <% if (fruits != null) { for (int i = 0; i < fruits.length; i++) { %> <li> <% out.println (util.HTMLFilter.filter(fruits[i])); } } else out.println ("none selected"); %> </ul> <br> <hr> The checked fruits (got using beans) are <br> <% fruits = foo.getFruit(); %> <ul> <% if (!fruits[0].equals("1")) { for (int i = 0; i < fruits.length; i++) { %> <li> <% out.println (util.HTMLFilter.filter(fruits[i])); } } else out.println ("none selected"); %> </ul> </font> </body> </html>


Slide 15

Java Server Faces Технология фреймворк серверных (serverside) компонентов пользовательского интерфейса для web приложений, написаных на языке Java Разделение представления и реализации JSP технология достигает этих целей лишь частично Предоставление простой программной модели за счёт разделения обязанностей в команде Aвторы страниц могут не иметь опыта использования скриптовых языков Создание абстрактного уровня реализации JSP технология может быть заменена на иную


Slide 16

JSF могут включать Компоненты JavaBeans с функциональностью и данными специфичными для приложения Слушатели событий (Event listeners) JSP страницы Серверные вспомогательные классы (JavaBeans для доступа к БД)


Slide 17

NetBeans IDE Позволяет автоматически сгенерировать заготовку для JavaServer Pages страницы JavaServer Faces страница Подложки Дескрипторы Большинство операций может быть выполнено с помощью визуального конструирования Навигация Связывание свойств объектов Создание и размещение графических элементов управления


Slide 18

Доступные элементы GUI


×

HTML:





Ссылка: