Скачать презентацию Платформа J 2 EE Сервис Java Naming Directory Скачать презентацию Платформа J 2 EE Сервис Java Naming Directory

Web.ppt

  • Количество слайдов: 11

Платформа J 2 EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов Платформа J 2 EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе) Ресурс: Data. Source - объект, позволяющий приложению получить доступ к соединению к БД

Структура J 2 EE Web-приложения Структура J 2 EE Web-приложения

Настройка Data. Source в Apache Tomcat Настройка Data. Source: Файл /META-INF/context. xml <? xml Настройка Data. Source в Apache Tomcat Настройка Data. Source: Файл /META-INF/context. xml Использование Data. Source: // Создаем начальный контекст JNDI (Java Naming Directory) Initial. Context ctx = new Initial. Context(); // Достаем из контекста источник данных Data. Source ds = (Data. Source)ctx. lookup("java: comp/env/jdbc/sample"); // Получаем соединение с БД из источника данных return ds. get. Connection();

J 2 EE: Сервлеты Пример: public class My. Servlet extends javax. servlet. http. Http. J 2 EE: Сервлеты Пример: public class My. Servlet extends javax. servlet. http. Http. Servlet { protected void service(Http. Servlet. Request request, Http. Servlet. Response response) throws Servlet. Exception, IOException {} public void destroy() { this. log("Servlet destroyed"); } public void init(Servlet. Config cfg) throws Servlet. Exception { this. log("Servlet inited"); } }

Основные классы Servlet API (javax. servlet. http. *) • Http. Servlet. Request – класс, Основные классы Servlet API (javax. servlet. http. *) • Http. Servlet. Request – класс, экземпляры кот. представляют запрос от браузера § String get. Context. Path() – возвращает путь к контексту приложения § String get. Servlet. Path() – URL вызванного сервлета (JSP) § Http. Session get. Session() – Сессия пользователя § Object get. Attribute() / void set. Attribute(String name, Object value) – Хранение пользовательских атрибутов, связанных с запросом § String get. Parameter(String value) – Параметр запроса (и для GET и для POST) § void set. Character. Encoding(String enc) – Кодировка значений параметров запроса (windows-1251, UTF-8) • Http. Servlet. Response – класс, экземпляры кот. представляют ответ браузеру § void set. Content. Type(String content. Type) – MIME-тип ответа браузеру § java. io. Print. Writer get. Writer() – поток вывода для ответа браузеру § void send. Redirect(String location) – перенаправление на другую страницу • Http. Session – класс, экземпляры кот. хранят состояние сессии клиента § Object get. Attribute() / void set. Attribute(String key, Object value) – Атрибуты сессии (сохраняются между запросами одного клиента) Http. Servlet. Context – класс, экземпляры кот. представляют все web-приложение § Object get. Attribute() / void set. Attribute(String key, Object value) – Атрибуты контекста (общие для всех пользователей и запросов к web-приложению) •

J 2 EE: Java Server Pages Жизненный цикл 1. Жизненный цикл класса страницы 2. J 2 EE: Java Server Pages Жизненный цикл 1. Жизненный цикл класса страницы 2. Жизненный цикл объекта страницы Элемент JSP Представление в JSP-файле Преобразуется в javaкласс как Импорт пакета <%@ page import="java. util. *" %> import java. util. *; Скриптлет: <% List items=new Array. List(); // любой java-код %> jsp_service() { … List items=new Array. List(); //любой java-код … } Вывод на страницу <%= new Date() %> out. write(new Date());

J 2 EE: Java Server Pages (JSP) <%@ page language= J 2 EE: Java Server Pages (JSP) <%@ page language="java" content. Type="text/html; charset=UTF-8" page. Encoding="UTF-8" %> <%@ page import="java. util. *" %> <%! // Объявляется поле в классе страницы int my_integer_field = 777; // Объявляется метод в классе страницы private String make_greeting(String name) { return "Hello, "+name + "!"; } %> Sample Hello world page <% // Скриптлет 1 for (int i=0; i<10; i++) { %> <%= /* Вывод в поток out */ make_greeting("World "+i) %> <% // Скриптлет 2 } // Конец цикла %> import java. util. *; public final class hello_jsp extends org. apache. jasper. runtime. Http. Jsp. Base { // Объявляется поле в классе страницы int my_integer_field = 777; // Объявляется метод в классе страницы private String make_greeting(String name) { return "Hello, "+name + "!"; } public void _jsp. Service(Http. Servlet. Request request, Http. Servlet. Response response) throws java. io. IOException, Servlet. Exception { Page. Context page. Context = null; Http. Session session = null; Jsp. Writer out = null; Object page = this; response. set. Content. Type("text/html; charset=UTF-8"); session = page. Context. get. Session(); out = page. Context. get. Out(); out. write("n"); out. write("n"); out. write("tSample Hello world pagen"); out. write("n"); out. write("rn"); // Скриптлет 1 for (int i=0; i<10; i++) { out. write("rn"); out. write(" "); out. print( /* Вывод в поток out */ make_greeting("World "+i) ); out. write("rn"); // Скриптлет 2 } // Конец цикла out. write("n"); out. write("n"); out. write(""); } }

Model View Controller (MVC) Model Модель отображаемых данных 1. Получает или сохраняет модель в Model View Controller (MVC) Model Модель отображаемых данных 1. Получает или сохраняет модель в БД 3. Накладывает модель на шаблон представления View Шаблон представления данных 2. Определяет view и передает управление Controller Контроллер запроса пользователя

Model View Controller в Web-приложении Model Модель отображаемых данных 6. Накладывает модель на шаблон, Model View Controller в Web-приложении Model Модель отображаемых данных 6. Накладывает модель на шаблон, получая HTML-страницу Модель отображаемых данных - Java beans классы -классы с get/set методами) View Шаблон. View представления данных 4. Заполняет модель данными Сервисы приложения - Java Server pages, - XSLT или - Velocity - … Контроллер запроса Контроллеры конкретных пользователя запросов 3. Получает данные из БД Front Controller 1. HTTP-запрос 5. Выбирает view и передает ему модель и управление Controller - Java классы с логикой приложения Services Шаблоны представления данных Диспетчер запросов от пользователей - Java классы приложения 2. Ищет контроллер и передает управление - Dispatcher. Servlet (всегда один)

Архитектура слоев приложения UI Layer Слой интерфейса пользователя отвечает за взаимодействие с пользователем Controllers Архитектура слоев приложения UI Layer Слой интерфейса пользователя отвечает за взаимодействие с пользователем Controllers Views Domain Model Объектная модель данных приложения X Service Layer X Слой сервисов приложения отвечает за выполнение бизнеслогики приложения Services Data Access Layer Отвечает за работу приложения с БД Data Access Objects (DAOs) Domain entities