Как лучше всего отображать данные, созданные процессом Java, в браузере?
Я широко использовал JSP и различные связанные с ним фреймворки (JSTL, Стойки, Гобелен и т. д.), А также более полные фреймворки, не связанные с JSP (GWT, OpenLaszlo). Ни одно из решений никогда не было полностью удовлетворительным - в большинстве случаев фреймворк слишком ограничен или слишком сложен для моих нужд, в то время как другие потребуют обширного рефакторинга существующего кода. Вдобавок у большинства фреймворков есть проблемы с производительностью.
В настоящее время я склоняюсь к решению раскрытия моих данных java с помощью простого сервлета, который возвращает JSON, а затем рендеринга данных с помощью PHP или Ruby. У этого есть дополнительное преимущество, заключающееся в том, что я мгновенно представляю мою службу как веб-службу, но мне интересно, изобретаю ли я здесь колесо.




Возможно, вы могли бы сгенерировать данные в формате XML и отобразить их с помощью XSLT?
Я не уверен, что PHP или Ruby - это ответ, если Java для вас недостаточно быстр!
Мы используем Полосы. Он дает вам больше структуры, чем обычные сервлеты, но позволяет вам управлять своими URL-адресами с помощью аннотации @UrlBinding. Мы используем его для потоковой передачи xml и json обратно в браузер для материалов ajax.
Вы можете легко использовать его с другой технологией, если хотите пойти по этому пути, но на самом деле вам может понравиться разработка с использованием полос.
Ознакомьтесь с Рестлет, чтобы получить хорошую основу для представления модели вашей предметной области в виде служб REST (включая JSON и простой вывод XML).
Может быть, для предоставления вашей информации вы можете использовать GWT на стороне клиента и использовать свои сервисы данных? Если GWT не поддерживает вашу лодку, то, может быть, это сделает JQuery?
Я лично использую Гобелен 5 для создания веб-страниц с помощью Java, но я согласен, что иногда это может быть немного излишним. Я бы посмотрел на использование JAX-RS (проект java.net, jsr311), он довольно прост в использовании, он поддерживает маршалинг и демаршалинг объектов в / из XML из коробки. Его можно расширить для поддержки JSON через Jettison.
Я пробовал две реализации:
Взгляните на следующий код, чтобы понять, что JAX-RS может для вас сделать:
@Path("/")
class TestClass {
@GET
@Path("text")
@Produces("text/plain")
String getText() {
return "String value";
}
}
Этот крошечный класс откроет себя в корне сервера (@Path в классе), затем предоставит метод getText () в URI / тексте и разрешит доступ к нему через HTTP GET. Аннотация @Produces сообщает платформе JAX-RS, что нужно попытаться преобразовать результат метода в простой текст.
Самый простой способ узнать о возможностях JAX-RS - прочитать Технические характеристики.