Апплет (или приложение WebStart), вызывающий сервер:лучшие практики?

StackOverflow https://stackoverflow.com/questions/920442

  •  06-09-2019
  •  | 
  •  

Вопрос

Я хотел бы написать апплет (или веб-приложение Java), вызывающий его сервер (сервлет?), Чтобы вызвать некоторые методы и отправить/получить данные.Какой способ/технология будет лучшим для отправки и получения этих сообщений?

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

Решение

Протокол:

Если вас не волнует совместимость с другими языками, я бы выбрал RMI через HTTP.Он имеет поддержку прямо из JRE, его довольно легко настроить и очень легко использовать, если у вас есть фреймворк.

Для аппликативной логики я бы использовал либо:

  1. Шаблон команды, передающий объекты, которые при вызове вызывают методы на сервере.Это хорошо для небольших проектов, но со временем имеет тенденцию усложняться и добавляться больше команд.Кроме того, требуется, чтобы клиент был связан с логикой сервера.
  2. Запрос по имени + подход DTO.Преимущество этого заключается в том, что логика сервера полностью отделяется от клиента, что позволяет серверной стороне изменяться по мере необходимости.Накладные расходы на создание поддерживающей структуры немного больше, чем в первом варианте, но разделение клиента и сервера, на мой взгляд, стоит затраченных усилий.

Выполнение:

Если вы еще не начали или используете Spring, то удаленное взаимодействие Spring — отличный инструмент.Он работает везде (включая апплеты), даже если вы не используете контейнер IOC.
Если вы не хотите использовать Spring, базовый RMI также довольно прост в использовании и имеет множество примеров в Интернете.

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

HTTP-запросы?Параметры на входе, XML на выходе.

XML по-прежнему является моим предпочтительным выбором для обмена данными.

Использование XML с чем-то вроде xstream это устраняет большую часть хлопот, связанных с XML-библиотеками Java.Ты можешь сериализовать и десериализовать объекты очень простым способом.

Легкое решение может быть Гессен слишком.

Простой пример: здесь.

Если вам нужен ORM для этого случая:пытаться Кайенна.

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