Изучаем Java EE 7 - [182]
Если вы используете инструмент веб-разработчика для проверки того, что происходит в сети между браузером и GlassFish, то увидите AJAX в действии. Отрисовывается частичный XML-ответ, а не вся HTML-страница. Частичный ответ сервера содержит часть страницы XHTML, которая будет обновляться. JavaScript ищет элементы страницы errors и booklist и применяет необходимые изменения (обновляя DOM). Частичный ответ в листинге 11.23 говорит сам за себя. Он указывает, что обновление должно быть сделано для компонентов, определенных в элементах errors и booklist (
>
>
>··
>····
>······
>······
>······]]>
>····
>····
>······
>······
>········
>··········
>············
Название >············
Цена >··········
>········
>········
>··········
>············
Java EE 6 >············
31.49 >··········
>··········
>············
Гарри Поттер >············
19.79 >··········
>··········
>············
H2G2 >············
23.99 >··········
>········
>······
>······]]>
>····
>··
>
Резюме
В главе 10 рассматривался графический аспект JSF, а эта глава была посвящена его динамической стороне. JSF следует шаблону проектирования MVC, и его спецификация охватывает все: от создания пользовательских интерфейсов с компонентами до обработки данных с помощью компонентов-подложек.
Компоненты-подложки находятся в основе JSF, поскольку используются для обработки бизнес-логики, вызовов EJB и баз данных, а также для навигации между страницами. Они имеют область действия и жизненный цикл (этим они напоминают сеансовые компоненты, не сохраняющие состояние), а также объявляют методы и свойства, которые привязаны к компонентам пользовательского интерфейса, с помощью языка выражений. Аннотации и конфигурация с применением исключений значительно упрощены начиная с версии JSF 2.2, большая часть XML-конфигурации теперь необязательна.
В этой главе показано, как обрабатываются преобразование и валидация данных для любых компонентов, предназначенных для ввода данных. JSF определяет набор преобразователей и валидаторов для наиболее распространенных случаев, но он также позволяет вам легко создавать и регистрировать собственные. Интеграция с Bean Validation естественна, и вам не нужно писать код для интеграции с JSF.
Поскольку AJAX существовал уже в течение нескольких лет, JSF имеет его встроенную поддержку, что позволяет веб-страницам вызывать базовые компоненты асинхронно. JSF определяет стандартную библиотеку JavaScript, и разработчику не нужно писать сценарии. Вместо этого следует использовать функции для обновления части страницы.
Последующие четыре главы будут сосредоточены на взаимодействии с системами благодаря обмену сообщениями, веб-службам SOAP и RESTful с использованием XML или JSON.
Глава 12. Обработка XML и JSON
XML использовался в платформе Java EE с появления дескрипторов развертывания и метаданных. Мы имеем дело с XML, когда приходится работать с файлами persistence.xml, beans.xml или ejb-jar.xml. Часто работа с Java позволяет разработчикам впервые войти в богатый мир XML. Однако мы быстро обнаружили, что работа с XML — это больше чем простое развертывание веб-приложения или EJB.
XML — это промышленный стандарт, определенный W3C. Хотя он не привязан ни к какому языку программирования или поставщику программного обеспечения, этот язык решил проблему независимости данных и совместимости. XML является расширяемым, не зависит от платформы и поддерживает интернационализацию, поэтому он стал предпочтительным языком для обмена данными между программными компонентами, системами и предприятиями (например, за счет использования веб-служб SOAP, которые будут описаны в главе 14).
С другой стороны, JSON появился вместе с JavaScript и служит для представления простых структур данных менее избыточным, нежели XML, способом. Если быть точным, формат JSON часто используется для сериализации и передачи структурированных данных по сети. Он быстро стал настолько популярным, что сегодня последние версии браузеров имеют встроенную поддержку кодирования/декодирования JSON. В дополнение к его отношениям с браузерами и JavaScript, JSON может служить форматом обмена данными (например, широко используется в веб-службах RESTful, которые будут рассмотрены в главе 15).
В данной главе я опишу оба формата, XML и JSON, сосредоточив внимание на структуре документа и API-интерфейсах, позволяющих манипулировать этими структурами. Мир XML богаче, так что вы увидите несколько спецификаций, которые могут помочь в анализе, проверке или связывании XML с объектами Java. Они настолько укоренились в нашей экосистеме, что большинство этих XML-спецификаций относятся к Java SE. JSON является относительным новичком в платформе Java и, следовательно, имеет меньше поддержки в Java SE/EE.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.