Вопрос

Каков хороший способ отображения данных, созданных процессом Java, в браузере?

Я широко использовал JSP и различные связанные с ним фреймворки (JSTL, Стойки, Гобелен, и т. д.), а также более полные фреймворки, не связанные с JSP (ГВТ, ОпенЛасло).Ни одно из решений никогда не было полностью удовлетворительным — в большинстве случаев структура слишком ограничена или слишком сложна для моих нужд, в то время как другие потребовали бы обширного рефакторинга существующего кода.Кроме того, большинство фреймворков имеют проблемы с производительностью.

В настоящее время я склоняюсь к решению предоставить свои Java-данные через простой сервлет, который возвращает JSON, а затем отображает данные с помощью PHP или Ruby.Это дает дополнительное преимущество, заключающееся в мгновенном представлении моего сервиса как веб-сервиса, но мне интересно, изобретаю ли я здесь велосипед заново.

Это было полезно?

Решение

Я лично использую Гобелен 5 для создания веб-страниц с помощью Java, но я согласен, что иногда это может быть немного излишним.Я бы рассмотрел возможность использования JAX-RS (проект java.net, jsr311) он довольно прост в использовании, он поддерживает маршалинг и демаршалинг объектов в/из XML «из коробки».Его можно расширить для поддержки JSON через Выброс.

Есть две реализации, которые я пробовал:

  • Джерси — эталонная реализация JAX-RS.
  • Рестизи - реализация, которую я предпочитаю, хорошая поддержка маршаллинга и демаршаллинга широкого спектра форматов.Также довольно стабилен и имеет больше возможностей, чем Джерси.

Взгляните на следующий код, чтобы понять, что может сделать для вас JAX-RS:

@Path("/")
class TestClass {
    @GET
    @Path("text")
    @Produces("text/plain")
    String getText() {
        return "String value";
    }
}

Этот крошечный класс разместит себя в корне сервера (@Path в классе), затем предоставит метод getText() по URI /text и разрешит доступ к нему через HTTP GET.Аннотация @Produces сообщает платформе JAX-RS попытаться преобразовать результат метода в обычный текст.

Самый простой способ узнать о возможностях JAX-RS — прочитать Спецификация.

Другие советы

Мы используем Полосы.Он дает вам больше структуры, чем обычные сервлеты, но позволяет вам управлять своими URL-адресами с помощью аннотации @UrlBinding.Мы используем его для потоковой передачи XML и JSON обратно в браузер для работы с AJAX.

Вы можете легко использовать его с другой технологией, если захотите пойти по этому пути, но на самом деле вам может понравиться разработка с использованием полос.

Проверить Рестлет для хорошей платформы для представления вашей модели предметной области в виде служб REST (включая JSON и тривиальный вывод XML).

Может быть, для рендеринга вашей информации вы можете использовать GWT на стороне клиента и использовать свои службы передачи данных?Если GWT не поможет вам в этом, то, возможно, JQuery поможет?

Возможно, вы могли бы сгенерировать данные в формате XML и отобразить их с помощью XSLT?

Я не уверен, что PHP или Ruby подойдут, если Java для вас недостаточно быстр!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top