Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lec-JSP-v001

.pdf
Скачиваний:
7
Добавлен:
18.03.2015
Размер:
1.99 Mб
Скачать

17

JavaServer Pages (JSP)

Основы разработки корпоративных

WEB приложений на языке Java

ОБСУЖДАЕМЫЕ ВОПРОСЫ

Факторы, обуславливающие

необходимость использования JSP

Некоторые особенности механизма работы JSP страниц

HTML страница с Java Script функцией для вызова JSP

Разработка и использование простой JSP

ФАКТОРЫ ОБУСЛАВЛИВАЮЩИЕ НЕОБХОДИМОСТЬ ИСПОЛЬЗОВАНИЯ JSP

1.Java Server Page (JSP) страницы используются для генерирования структурированного текстового контента, представления данных приложения в типичном случае включающего HTML, XHTML, XML и т.п. с включением элементов какого-либо скрипт языка.

2.В большинстве случаев JSP используется для реализации презентационного слоя.

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

JSP СТРАНИЦЫ

JSP страницы лучше всего использовать для контента, который частично фиксирован, с некоторыми элементами, которые заполняются динамически во время выполнения.

JSP страницы не подходят для создания контента с резко изменяющейся структурой или для контроля маршрутизации запросов (используйте сервлеты).

Основной мотивацией реализации презентационного слоя в JSP является упрощение и автоматизация его построения, а также разделение труда, так как JSP с пользовательскими XML тегами может разрабатывать web мастер.

JSP И ВНЕШНИЕ ОБЪЕКТЫ

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

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

В нашей будущей странице тоже будет использоваться такой внешний компонент для работы с базой данных.

МЕХАНИЗМ РАБОТЫ JSP СТРАНИЦЫ

При первом обращении клиента к некоторой JSP странице, контейнер серлетов выполняет:

генерацию класса сервлета, этой JSP страницы

создание экземпляра этого класса-сервлета

инициализацию сервлета методом jspInit().

При следующих обращениях к этой JSP-странице, контейнер вызывает метод _jspService(). Если контейнеру потребуется удалить сервлет JSP

страницы, то вызывается метод jspDestroy(), после чего сервлет освобождается.

Java код полученный при трансляции храниться на Tomcat в директории :

<CATALINA_HOME>\work\Standalone\localhost\<назв_прилож>

ПРОМЕЖУТОЧНЫЙ КОД

Название файла, содержащего код генерируется из названия файла, содержащего страницу добавлением суффикса _jsp.java.

При порождении ошибок в фазах трансляции и компиляции их можно увидеть только при первом вызове страницы. В этом случае сервер возвращает сообщение о

JasperException , а также сообщение, которое включает название JSP страницы и номер строки, где обнаружена ошибка.

JSP И ВНЕШНИЕ ОБЪЕКТЫ

ServletContext

application

ServletRequest ServletResponse

Application

Context

HttpSession

session

JSP Page

 

Beans

/Servlet

 

 

 

 

 

 

PageContext

ПРОСТАЯ JSP

Рассматривая текст JSP страницы, легко увидеть, что основой

теперь стал HTML код. Вставки Java кода и директивы начинаются элементом

"<%" и заканчивается элементом "%>". JSP страницы в отличие от сервлетов описывать в дескрипторе приложения web.xml не обязательно (и не нужно).

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <%@ page import="javax.sql.DataSource,java.sql.*" %>

<%@ page import="org.bookstore.common.Glo" %> <%@ page session="true" %>

<%@ page contentType="text/html; charset=UTF-8" %> <jsp:useBean id="authBean" scope="session" class="org.bookstore.beans.AuthBean8"> <jsp:setProperty name="authBean"

property="dataSourceName" value="<%= Glo.getMainDSName()%>"/>

</jsp:useBean>

<jsp:setProperty name="authBean" property="*"/> <HTML>

<HEAD>

<TITLE>Книжная лавка</TITLE>

. . .

ПРОСТАЯ JSP (ОКОНЧАНИЕ)

. . .

<META HTTP-EQUIV=Content-type CONTENT="text/html; charset=UTF-8"> </HEAD>

<BODY BGCOLOR="#C0FDDD">

<H1>АВТОРЫ проживающие в <jsp:getProperty name="authBean" property="country"/></H1>

<TABLE BORDER=1 ALIGN=CENTER><TR BGCOLOR="#FFF0D8"> <TH>ID авт.</TH><TH>Фамилия</TH><TH>Имя</TH>

<%

ResultSet rs = authBean.getRst(); while (rs != null && rs.next())

{

out.println(

"<TR><TD>" + rs.getInt(1) + "</TD>"

+"<TD>" + rs.getString(2) + "</TD>"

+"<TD>" + rs.getString(3) + "</TD>\n</TR>");

}

authBean.allClose();

%>

</TABLE>

</BODY>

</HTML>

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