1 / 75

Лектор : Георги Денчев ComSoft Ltd.

Разработка на Struts- базирани WEB приложения с Oracle JDeveloper 10g. Лектор : Георги Денчев ComSoft Ltd. Съдържание. Въведение в Struts Въведение в Oracle Application Development Framework (ADF) Изграждане на примерно Struts - базирано приложение Заключение. Съдържание.

Download Presentation

Лектор : Георги Денчев ComSoft Ltd.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Разработка на Struts-базирани WEB приложения с Oracle JDeveloper 10g Лектор: Георги Денчев ComSoft Ltd. Microsoft .NET Framework Overview

  2. Съдържание • Въведение в Struts • Въведение в Oracle Application Development Framework (ADF) • Изграждане на примерно Struts-базирано приложение • Заключение Microsoft .NET Framework Overview

  3. Съдържание • Въведение в Struts • Какво представлява Struts • Ролята на Struts в приложението • Основниградивни елементии класове • Основни похвати • Поддръжка на Struts в JDeveloper 10g Microsoft .NET Framework Overview

  4. Какво представлява Struts • Платформа за разработка на WEB приложения • Базиран на стандартни технологии – JavaBeans, Java Servlets, JavaServer Pages (JSP), XML, … • Софтуер с отворен код • Плод на усилията на разрастващо се общество от разработчици Microsoft .NET Framework Overview

  5. Какво представлява Struts • Реализира MVC (Model-View-Controller) парадигма Microsoft .NET Framework Overview

  6. Съдържание • Въведение в Struts • Какво представлява Struts • Ролята на Struts в приложението • Основниградивни елементии класове • Основни похвати • Поддръжка на Struts в JDeveloper 10g Microsoft .NET Framework Overview

  7. Ролята на Struts в приложението • Controller • Всички заявки минават през логическия център на приложението • Лесно се конфигурира през XML файлове • Реалната работа се извършва от Action класове, извиквани от контролера • Вграден механизъм за валидация на входните данни • Отлична архитектура и дизайн Microsoft .NET Framework Overview

  8. Ролята на Struts в приложението • View • Няма конкретно обвързване с определена технология • Вградена поддръжка за интернационализация • View (JSP) • Вградени библиотеки от тагове за визуализация • Избягва се употребата на скриптлети • Улеснява се работата на дизайнерите на страницата Microsoft .NET Framework Overview

  9. Ролята на Struts в приложението • Model • Няма конкретно обвързване с определена технология • Логиката трябва да се реализира изцяло от разработчика • Съществуват помощни продукти, реализиращи връзката с базата данни • Oracle BC4J • Enterprise Java Beans (EJB) • Hibernate Microsoft .NET Framework Overview

  10. Съдържание • Въведение в Struts • Какво представлява Struts • Ролята на Struts в приложението • Основниградивни елементии класове • Основни похвати • Поддръжка на Struts в JDeveloper 10g Microsoft .NET Framework Overview

  11. Класът ActionServlet • Представлява сървлет, който съпоставя определени класове на събития (обикновено HTTP POST заявки) • Предава управлението на подходящ RequestProcessor • Поддръжка на множество модули в рамките на едно приложение Microsoft .NET Framework Overview

  12. Класът RequestProcessor • Най-важен в Controller частта на приложението • Предоставя изключително много точки за разширение – гъвкав и мощен • Създава и използва инстанции на Action, ActionForm и ActionForward Microsoft .NET Framework Overview

  13. Класът RequestProcessor • Настройва се чрез конфигурационен файл (struts-config.xml) – лесно и бързо • По време на разработката на WEB приложението класовете Action и ActionForm се разширяват в зависимост от конкретната задача • Конфигурационният файл указва по какъв начин да се използват разширените класове Microsoft .NET Framework Overview

  14. Класът RequestProcessor • Предимства на подхода • Цялата логика на управление на приложението е в един йерархичен текстов файл • улеснява процеса на усвояване, особено при големи приложения • Не е необходимо дизайнерът на страниците да е запознат с Java код • Не е необходима прекомпилация на приложението Microsoft .NET Framework Overview

  15. Класът ActionMapping • ActionMapping съдържа информация за съответствие между събития (HTTP заявки) и определени Action класове • Controller частта на Struts извиква определен Action клас в зависимост от текущата HTTP заявка • RequestProcessor подава ActionMapping обекта на “execute” метода на извикания Action • Това осигурява на Action обекта достъп до логиката на управление на приложението (control flow) Microsoft .NET Framework Overview

  16. Класът ActionMapping • От конфигурационния файл “struts-config.xml” се извлича набор от ActionMapping класове • Те се обединяват в общ контейнер – АctionMappings Microsoft .NET Framework Overview

  17. Класът ActionForm • Общ модел за данни които се задават или модофицират от HTTP форма (реализира се като JavaBean клас) • Абстрактен клас, който се разширява за всяка различна входна точка за данни в приложението • Множество HTTP заявки могат да бъдат асоциирани с един и същ модел на предаваните данни (ActionForm) • Един и същ ActionForm може да се използва в няколко последователни страници (wizards) Microsoft .NET Framework Overview

  18. Класът ActionForm • За всеки параметър XXX който трябва да се извлече от HTTP заявката, ActionForm трябва да дефинира getXXX() и setXXX() методи • Ако искаме да валидираме входните данни, трябва да реализираме метода “validate” • Ако искаме да инициализираме стойности преди тяхното попълване, трябва да реализираме метода “reset” Microsoft .NET Framework Overview

  19. Класът ActionForm • Алтернативни ActionForm типове • Map-backed ActionForm • Стойностите се съдържат в Map • Динамично, гъвкаво представяне на данните • DynaActionForm • ActionForm с декларативно зададени имена на параметрите – улеснява реализацията и поддръжката • Методът “reset” възстановява стойностите на ВСИЧКИ параметри Microsoft .NET Framework Overview

  20. Класът Action • Играе главна роля в Struts • Основни задачи/отговорности • Осъществяване на достъп до бизнес слоя на приложението • Подготовка на данните за използване от презентационния слой • Обработка на възникналите грешки по време на изпълнение на горните две задачи • Пренасочване към подходяща точка от View частта на приложението Microsoft .NET Framework Overview

  21. Класът Action • Отправна точка за изпълнимия код е методът “execute” (“perform”) • Данните от HTTP заявката са вече обработени и се предават на Action обекта посредством ActionForm обект • Action обектите имат достъп и до самата HTTP заявка, както и до HTTP отговора • Action класовете определят логиката на управление на приложението Microsoft .NET Framework Overview

  22. Класът Action • Връща към извикващия RequestProcessor ActionForward обект • ActionForward указва View частта от приложението, към която ще се предаде управлението • Възможно е да се изгражда верига от Action класове (Action chaining) • При възникване на грешки е възможно да ги обработи и върне в user-friendly вид към клиента Microsoft .NET Framework Overview

  23. Класът ActionForward • Указва следващата отправна точка за приложението чрез атрибута си “path” • Атрибутът “redirect”определя дали ще се извърши пренасочване на сървъра (forward) или HTTP пренасочване (redirect) • Два основни типа ActionForward • глобални (могат да се използват в цялото приложение) • локални (дефинирани са в конкретен ActionMapping) Microsoft .NET Framework Overview

  24. Класът ActionError • Съдържа описание на възникнала по време на работата на приложението грешка • Дава възможност за логическа интерпретация на грешките в достъпен за потребителя формат • Възможно е да се обединяват много грешки в един ActionErrors обект Microsoft .NET Framework Overview

  25. Да обединим всичко в едно – “struts-config.xml” • Точката на обединение на всички компоненти на Struts-базираното приложение • Съдържа ActionForms, ActionForwards (глобални + локални), ActionMappings • Съдържа обръщения към ресурси на приложението • Може да дефинира глобална обработка на грешки (exceptions) Microsoft .NET Framework Overview

  26. Примерен “struts-config.xml” Microsoft .NET Framework Overview

  27. Обобщение – Struts control flow • Клиентът извършва заявка • WEB контейнерът предава заявката към ActionServlet • Ако в приложението са дефинирани множество модули, ActionServlet избира подходящия модул и съответстващия му RequestProcessor • RequestProcessorнамира mapping, съответстващ на клиентската заявка • Ако mappingуказва form bean, RequestProcessorпроверява дали вече съществува такъв form bean (ако не – създава такъв) Microsoft .NET Framework Overview

  28. Обобщение – Struts control flow • Ако mappingуказва form bean, RequestProcessorпопълва form bean от клиентската заявка • Ако параметърът на mapping“validate” е истина, ActionServletизвиква метода “validate” на form bean • Ако “validate” не успее, RequestProcessorпренасочва към пътя, указан от “input” параметъра на mappingи процесът завършва • Ако с mappingсе асоциира тип Action, той се използва наново ако вече съществува • RequestProcessorизвиква “execute” метода на Action, като му подава създадения form bean (или null) Microsoft .NET Framework Overview

  29. Обобщение – Struts control flow • Actionможе да попълва form bean, да извиква бизнес методи и т.н. • Actionвръща ActionForward към RequestProcessor • Ако ActionForward съдържа път към друг Action, започваме цикъла отначало; в противен случай цикъла завършва, управлението се предава на JSP страница (или друга презентационна технология) • Ако JSP страницата съдържа Struts HTML тагове и те виждат правилната form bean в заявката, стойностите им се попълват автоматично. В противен случай тагът <html:form>създава form bean Microsoft .NET Framework Overview

  30. Съдържание • Въведение в Struts • Какво представлява Struts • Ролята на Struts в приложението • Основниградивни елементии класове • Основни похвати • Поддръжка на Struts в JDeveloper 10g Microsoft .NET Framework Overview

  31. Разширяване на класа RequestProcessor • Множество extension points – под формата на методи от вида processXXX() • Всички такива методи се извикват в рамките на “process” метода на RequestProcessor • RequestProcessor осигурява имплементация по подразбиране на всички методи от този вид Microsoft .NET Framework Overview

  32. Разширяване на класа RequestProcessor • processRoles() – позволено ли е на потребителя да изпълни съответния Action • Бърза реализация на централизирана подсистема за проверка на права • Най-често предефинираният метод • processPopulate(), processValidate() – позволяват собствена имплементация на попълването и валидацията на ActionForm • processLocale(), processNoCache(), … Microsoft .NET Framework Overview

  33. Валидация на входни данни • Добра практика е да се извършва в рамките на “validate”метода на ActionForm • При невалидни/некоректни данни • Struts автоматично връща съобщенията за грешки към потребителя • атрибутът “input”на ActionMapping указва точното място от View частта на приложението Microsoft .NET Framework Overview

  34. Валидация на входни данни • Struts Validator • Алтернатива на традиционния метод на валидация на данни (Struts 1.0) • Вградени типове данни • Декларативна валидация (отделен конфигурационен файл), промяна без рекомпилация • Поддръжка на локализация на съобщенията за грешки Microsoft .NET Framework Overview

  35. Интернационализация илокализация в Struts • Интернационализация – дизайнът на приложението позволява адаптация към различни езици и региони • Struts гради върху стандартните средства, заложени в Java платформата • Разработчиците не са обвързани с използването на Struts за интернационализация на приложението Microsoft .NET Framework Overview

  36. Интернационализация илокализация в Struts • Интернационализация (Java) • Java.util.Locale – разграничаване между различни местоположения • Java.util.ResourceBundle – централен склад за съобщения; може да се извлича съобщение за даден Locale; поддръжка за добавяне на нов Locale без да се налага рекомпилация • Java.util.MessageFormat – форматиране на елементи (дати, валута, ...) според езика и региона на определен Locale Microsoft .NET Framework Overview

  37. Интернационализация илокализация в Struts • Локализация – процесът на адаптация на приложението към различни езици и региони • Локализация • Struts поддържа Locale обект в сесията на всеки потребител • ServletRequest.getLocale() връща локала, зададен от WEB браузъра, но Struts няма директен контрол върху този локал Microsoft .NET Framework Overview

  38. Интернационализация илокализация в Struts • Локализация • MessageResources – клас, който унифицира процеса на извличане на съобщения • MessageResources осигурява достъп до resource bundle по подразбиране, който се зарежда от controller сървлета • ActionMessage – клас-обвивка на едно локализирано съобщение • Поддръжка на обикновени съобщения и съобщения за грешка (ActionError в Struts 1.0) • Генерираните съобщения се запазват чрез метода “saveMessages(<request>, <messages>)” Microsoft .NET Framework Overview

  39. Предотвратяване на double submissions • Проблем в WEB програмирането е липсата на контрол върху приложението от страна на клиента (най-често web browser) • Double submissions – проблем, който се среща във ВСИЧКИ WEB приложения • В Struts се решава чрез използване на т.нар. token Microsoft .NET Framework Overview

  40. Предотвратяване на double submissions • Опростен сценарий • Преди предаване на управлението на презентационната логика се генерира token (който е уникален в рамките на един HTTP request) • В “execute” метода на Action, преди същинската логика, се проверява валидността на token • Ако не е валиден, връщаме подходящо съобщение за грешка към потребителя • Ако е валиден, премахваме текущата token информация и продължаваме Microsoft .NET Framework Overview

  41. Интеграция на Struts с другитехнологии • Struts 1.x включва технологии, които в Struts 1.0 са били включвани допълнително към ядрото • JSTL (Java Standart Tags Library) • Библиотека с JSP тагове • Улеснява голяма част от стандартните операции, реализирани в една JSP страница • Намалява употребата на скриптлети Microsoft .NET Framework Overview

  42. Интеграция на Struts с другитехнологии • Struts Validator • Алтернативен начин за валидация на входни данни (в Struts 1.0 можем да ползваме само метода “validate” на ActionForm) • Декларативна валидация на данни • Бърза и гъвкава имплементация • Вградени валидатори за наи-често използваните типове данни – integer, float, date, regex, … • При промяна не се налага рекомпилация Microsoft .NET Framework Overview

  43. Интеграция на Struts с други технологии • Tiles • Осигурява консистентност на външния вид на приложението • Изпозва JSP includes – широко разпространена техника, оптимизирана в повечето Java сървлетконтейнери • Tile – синоним на шаблонна страница Microsoft .NET Framework Overview

  44. Интеграция на Struts с други технологии • Tiles • В основата стои layout template – страница, която определя позицията на основни елементи (tiles) като заглавна част, меню, съдържание • Основните елементи също са страници • По-лесна промяна, code reuse на ниво JSP страница Microsoft .NET Framework Overview

  45. Съдържание • Въведение в Struts • Какво представлява Struts • Ролята на Struts в приложението • Основниградивни елементии класове • Основни похвати • Поддръжка на Struts в JDeveloper 10g Microsoft .NET Framework Overview

  46. JDeveloper 10g • Интегрирана среда за разработка (IDE) • Поддържа пълния цикъл на разработка на приложения – моделиране, кодиране, тестване, оптимизиране, ... • Използва последните Java, XML и SQL стандарти • Съдържа множество wizards за улеснение и автоматизация на дейности • Визуални дизайнери на всяко ниво • Мощен редактор на код Microsoft .NET Framework Overview

  47. Поддръжка на Struts в JDeveloper 10g • Визуален дизайнер на потока от страници (page flow) Microsoft .NET Framework Overview

  48. Поддръжка на Struts в JDeveloper 10g • Визуализация на компоненти по време на дизайн Microsoft .NET Framework Overview

  49. Поддръжка на Struts в JDeveloper 10g • Подробен визуален редактор на “struts-config.xml” Microsoft .NET Framework Overview

  50. Съдържание • Въведение в Oracle Application Development Framework (ADF) • Какво представлява ADF • Oracle ADF Binding Context • Жизнен цикъл на ADF • Интеграция на ADF със Struts Microsoft .NET Framework Overview

More Related