Java + JSON. Пути к дружбе.
Введение
Спешу поделиться результатами небольшого исследования, оказавшегося необходимым для текущего проекта. Рассматривается возможность связки Java и JSON, её преимущества и недостатки. Я расскажу о практической части, о теории больше поведают нижеприведённые ссылки (англ.).
- Mastering JSON — самая приятная статья по JSON, описывающая все основные принципы и дополнительные возможности
- Использование JSON для передачи данных AJAX’ом в статье от IBM
- Описание связи JSON и JavaScript на официальном сайте
- Краткое описание скрещивания JSON и Java на официальном сайте
- Java-классы на официальном сайте
- Способы сериализации Java-объектов в статье от IBM
- И ещё о сериализации JSON-объектов в строку
- JSONTools для Java
Если кратко — JSON (JavaScript Object Notation) не является ничем более сложным, чем описано в его названии. Если вы можете описать сложно-структурированный объект на JavaScript — то о клиентской стороне JSON вы знаете практически всё. Серверная часть JSON занимается тем, что принимает каким-либо способом объект, записанный в нотации JavaScript и разворачивает данные таким образом (наверное можно сказать, десериализует), чтобы они стали доступны (или хотя бы понятны :) ) остальной части кода.
Редеплойинг приложения на Tomcat средствами Ant
Процесс разработки нашего проекта обладает одним минусом, свойственным многим J2EE-проектам: при изменении кода проекта и пересборке его сервер не сразу подхватывает обновку, а требует полного останова себя, очистки кэша, запуска себя по-новой и передеплойинга пакета.
Для того чтобы не делать это каждый раз ручками есть несколько простых способов: например, те же скрипты (batch’и для windows и shell-скрипты для linux). Но мне показалось более простым сделать так, чтобы делал это сам собирающий ant-скрипт (сценарий?): одно нажатие клавиши и все просходит автоматически…
JSP Custom Tags
Расскажу вам для затравки, например, о кастом-тэгах для JSP (а по принципу – и для каких-нибудь там java server faces). Информации об этом действительно не так уж мало. Но тем не менее хотелось предложить для начала что-нибудь простенькое дабы развернуть тему.
В качестве примера я решил взять свой немного хитрый, но зато относительно широко показывающий возможности тего-фабрицирования, тег.
В качестве задачи нам требуется встроить в jsp возможность изменения стиля текста, обрамленного тегом, в зависимости от величины переданного значения. Яркий пример – отображение в таблице задач задач с небольшими приоритетами – курсивом, а задач с высокими приоритетами – жирным шрифтом, стиль задач с нормальным приоритетом при этом не меняется. Кроме того, тербовалась возможность передать тегу запись CSS-стиля, поэтому спецификация тега получилась даже больше его реализации :).



