DWR
DWR (англ. Direct Web Remoting) — это свободная Java библиотека, которая помогает разработчикам, желающим писать сайты, включающие в себя технологию Ajax. Она позволяет коду в браузере использовать функции Java, исполняемые на сервере, так, как если бы они исполнялись в браузере.
Direct Web Remoting | |
---|---|
Тип | Ajax |
Разработчик | David Marginian / Joe Walker / Dojo Foundation |
Написана на | Java и JavaScript |
Операционная система | Кроссплатформенное ПО |
Последняя версия | 3.0.2 (11 декабря 2016) |
Состояние | Active |
Лицензия | Apache 2.0 Licence |
Сайт | directwebremoting.org |
Библиотека состоит из двух основных частей:
- Код на принципах Ajax, позволяющий JavaScript получать данные от сервлета, установленного на веб-сервере.
- Библиотека JavaScript, которая упрощает веб-мастерам динамическое изменение страницы согласно полученным от сервера данным.
DWR предоставляет новый подход к Ajax — динамическая генерация JavaScript на основе Java-классов. Таким образом разработчики могут использовать Java-код из JavaScript, как если он присутствовал прямо в браузере; но поскольку реально Java код запущен на веб-сервере, он имеет доступ ко всем ресурсам. Из соображений безопасности веб-разработчик должен точно прописывать, какие именно классы и какие данные из этих классов можно экспортировать.
Самая большая сложность при разработке DWR — это подружить асинхронную природу Ajax и синхронную природу обычных вызовов функций Java. В асинхронной модели результат доступен только спустя некоторое время после вызова метода. DWR решает эту проблему следующим образом: веб-разработчик задаёт в качестве дополнительного параметра функцию-обработчик, которая будет вызвана, когда придёт результат.
Проект DWR был начат Джо Уолкером (Joe Walker) в 2004.