Главная » Просмотр файлов » В.В. Кулямин - Технологии программирования. Компонентный подход

В.В. Кулямин - Технологии программирования. Компонентный подход (1134162), страница 75

Файл №1134162 В.В. Кулямин - Технологии программирования. Компонентный подход (В.В. Кулямин - Технологии программирования. Компонентный подход) 75 страницаВ.В. Кулямин - Технологии программирования. Компонентный подход (1134162) страница 752019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 75)

При этом роль представленияиграют JSP-страницы, а роль обработчиков — сервлеты. Основные отличия Struts от стандартнойтехники J2EE связаны с большей специализацией сервлетов и некоторой стандартизацией обменаданными между сервлетом, обрабатывающим запросы пользователя, и JSP-страницей,представляющей их результаты.271Клиент —Web-браузерHTMLстраницыWeb-серверHTTPWeb-контейнерActionServlet иRequestProcessorДействияДействиеДействияФормадействияДействияJSPКомпонентымоделиданныхХранилищеданных(СУБД)База данныхРисунок 79.

Общая схема архитектуры Web-приложений на основе Struts.В рамках приложения на основе Struts используется ровно один стандартизированный сервлет(ActionServlet), анализирующий запросы пользователя и выделяющий из каждого запросадействие (action), которое пользователь пытается выполнить. Для Интернет-магазина такимдействиями, например, могут быть аутентификация (предоставление своего имени и пароля),получение данных о товаре, поиск товара, добавление товара к уже заказанным, изменение заказа,предоставление прав на скидку, выполнение заказа, получение статуса выполнения заказа, отменазаказа и пр.

Для каждого действия создается отдельный класс действия. Такой класс должен бытьнаследником класса org.apache.struts.action.Action из библиотеки Struts и перегружать методActionForward execute(ActionMapping, ActionForm, HttpServletRequest,HttpServletResponse) — именно он и вызывается для выполнения этого действия.Один из параметров метода execute() в классе действия имеет тип формы действияorg.apache.struts.action.ActionForm. Для каждого действия определяется свой класс формыдействия, наследующий классу ActionForm.

Объекты этого класса используются для передачипараметров действия — наиболее существенных данных запросов, описывающих данноедействие.В методе execute() класса действия обычно строятся или находятся компоненты бизнеслогики приложения, которые реализуют операции, соответствующие данному действию, а затемэти операции выполняются со значениями полей объекта формы действия в качестве аргументов.Привязка запросов к действиям описывается в дополнительном конфигурационном файлеstruts-config.xml в формате XML, в теге action-mappings.

Одно действие описывается с помощьювложенного тега action, который имеет следующие атрибуты.•pathОпределяет шаблон URI, обращения к которым будут интерпретироваться как выполнениеданного действия.•typeОпределяет имя класса данного действия.•nameЗадает уникальное имя для данного действия.Привязка действий к определенным для них формам происходит с помощью тегов from-bean,вложенных в тег form-beans. Каждый тег form-bean имеет атрибут name, указывающий имя272действия для данной формы, и type, указывающий имя класса формы действия. Кроме того, такойтег может содержать вложенные теги form-property, описывающие свойства формы (в смыслеJavaBeans) при помощи таких же атрибутов name (имя свойства) и type (тип свойства).Помимо описанного механизма декомпозиции обработки запросов, среда Struts включаетбиблиотеки классов Java, в том числе, классов часто встречающихся действий, и библиотекипользовательских тегов, предназначенных для более удобного описания размещенных на JSPстраницах элементов HTML-форм.Java Server FacesJava Server Faces (JSF) [4,5] включают библиотеку элементов управления WebUI javax.faces идве библиотеки пользовательских тегов, предназначенных для использования этих элементовуправления в рамках серверных страниц Java.

C помощью тегов библиотеки jsf/html элементыуправления размещаются на странице, а с помощью тегов из jsf/core описывается обработкасобытий, связанных с этими элементами, и проверка корректности действий пользователя.В аспекте построения WebUI на основе серверных страниц Java технология Java Server Facesявляется развитием подхода Struts (Struts включают решения и для других аспектов разработкиприложений), предлагая более богатые библиотеки элементов WebUI и более гибкую модельуправления ими. Эта модель включает следующие элементы.• Возможность различного изображения абстрактного элемента управления (например,элемент управления «выбор одного из многих» может быть изображен как группа радиокнопок, комбо-бокс или список).• Возможность изменения визуальных стилей элементов управления.• Возможность привязки изображаемых элементом управления значений к свойствамкомпонентов модели данных.• Возможность привязки элементов управления к методам проверки корректности значений,устанавливаемых в них пользователем.В дополнение к библиотекам элементов WebUI JSF предлагает определять правила навигациимежду страницами в конфигурационном файле приложения.

Каждое правило относится кнекоторому множеству страниц и при выполнении определенного действия или наступлениисобытия предписывает переходить на некоторую страницу. Действия и события связываются сдействиями пользователя или логическими результатами их обработки (такими результатамимогут быть, например, успешная регистрация заказа в системе, попытка входа пользователя всистему с неправильным паролем и пр.).Технология Java Server Face версии 1.2 войдет в состав будущей версии 5.0 платформыJ2EE [6].Управление данными приложения. HibernateТехнологии обеспечения синхронизации внутренних данных приложения и его базы данныхразвиваются в настоящий момент достаточно активно.

Технология EJB предоставляетсоответствующие механизмы, но за счет значительного снижения удобства разработки имодификации компонентов. Обеспечение той же функциональности при более простойвнутренней организации кода является основным направлением развития в данной области.Возможным решением этой задачи являются объектно-реляционные преобразователи(object-relation mappers, ORM), которые обеспечивают автоматическую синхронизацию междуданными приложения в виде наборов связанных объектов и данными, хранящимися в системеуправления базами данных (СУБД) в реляционном виде, т.е.

в форме записей в несколькихтаблицах, ссылающихся друг на друга с помощью внешних ключей.Одним из наиболее широко применяемых и развитых в технологическом плане объектнореляционных преобразователей является Hibernate [7-9].Базовая парадигма, лежащая в основе избранного Hibernate подхода, — это использованиеобъектов обычных классов Java (быть может, оформленных в соответствии с требованиями273спецификации JavaBeans — с четко выделенными свойствами) в качестве объектногопредставления данных приложения. Такой подход даже имеет название-акроним POJO (plain oldJava objects, простые старые Java-объекты), призванное показать его отличие от сложных техникпостроения компонентов, похожих на EJB.Большое достоинство подобного подхода — возможность использовать один раз созданныенаборы классов, представляющих понятия предметной области, в качестве модели данных любыхприложений на основе Java, независимо от того, являются ли они распределенными илилокальными, требуется ли в них синхронизация с базой данных и сохранение данных объектовили нет.AuthorsBooksBookAuthorsID : intFirstName : StringSurname : StringAuthorID : intBookID : intID : intTitle : StringISBN : StringРисунок 80.

Реляционное представление данных о книгах и авторах.Например, для представления в объектном виде данных о книгах и их авторах,соответствующих показанной на Рис. 80 группе таблиц, могут быть использованы представленныениже классы.import java.util.Set;import java.util.HashSet;public class Author{private int id;private String firstName;private String surname;private Set books = new HashSet();public int getId (){ return this.id; }private void setId (int id) { this.id = id;}public String getFirstName (){ return this.firstName;}public void setFirstName (String firstName) { this.firstName = firstName; }public String getSurname (){ return this.surname;}public voidsetSurname (String surname) { this.surname = surname; }public Set getBooks (){ return this.books; }public void setBooks (Set books) { this.books = books; }}public class Book{private int id;private String title;private String isbn;private Set authors = new HashSet();public int getId (){ return this.id; }private void setId (int id) { this.id = id;}public String getIsbn (){ return this.isbn; }public voidsetIsbn (String isbn) { this.isbn = isbn; }274public String getTitle (){ return this.title; }public voidsetTitle (String title) { this.title = title; }public Set getAuthors (){ return this.authors;}public void setAuthors (Set authors) { this.authors = authors; }}Для определения отображения объектов этих классов в записи соответствующих таблициспользуются конфигурационные файлы со следующим содержанием.

Первый фрагментпредставляет собой описание отображения объектов класса Author на записи таблицы Authors,которое обычно помещается в файл Author.hbm.xml.<hibernate-mapping><class name="Author" table="Authors"><id name="id" column="ID"><generator class="increment"/></id><property name="firstName" column="FirstName"/><property name="surname"/ column="Surname"><set name="books" table="BookAuthors" inverse="true"><key column="AuthorID"/><many-to-many column="BookID" class="Book"/></set></class></hibernate-mapping>Второй фрагмент представляет собой содержание аналогичного файла Book.hbm.xml,описывающего отображение объектов класса Book на записи таблицы Books.<hibernate-mapping><class name="Book" table="Books"><id name="id" column="ID"><generator class="increment"/></id><property name="title" column="Title"/><property name="isbn"/ column="ISBN"><set name="authors" table="BookAuthors" inverse="true"><key column="BookID"/><many-to-many column="AuthorID" class="Author"/></set></class></hibernate-mapping>При использовании объектов указанных классов в рамках приложения на основе Hibernateобеспечивается автоматическая синхронизация данных объектов с данными соответствующихзаписей, а также автоматическая поддержка описанного отношения типа «многие-ко-многим».Кроме того, Hibernate поддерживает удобные средства для описания сложных соответствиймежду объектами и записями таблиц при использовании наследования.

Характеристики

Тип файла
PDF-файл
Размер
3,61 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6443
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее