Визуализировать изображения с помощью кода Java или читать изображения со статического пути? - PullRequest
1 голос
/ 24 февраля 2012

Вот мой код:

1.Java код:

public static void getImg(Long itemId) {
  try {
    Item item = Item.findById(itemId);
    if (item.img != null && item.img.getFile() != null{
      response.setContentTypeIfNotSet(item.img.type());
      renderBinary(item.img.get());
    }
  } catch (Exception e) {
    Logger.error("Can't find image,itemId = " + itemId);
  }
} 

html : < img src="@{{ Items.getImage(123)}}"/>

2

html : < img src="/public/images/123.jpg"/>

Я использую playframework, и образцы из документации отображают изображения через первую версию. Чем отличается (глубоко в механизме) между ними, особенно в производительности ответа?

1 Ответ

1 голос
/ 24 февраля 2012

В 1-й версии, поскольку вы получаете фактическое имя файла из некоторой бизнес-логики (и / или базы данных), вы можете легко переименовать / заменить изображение с идентификатором '123' без необходимости изменять уровни представления.

Если изображение с идентификатором '123' находится в защищенной папке (базовая аутентификация HTTP или аналогичная), ваша бизнес-логика может обеспечить доступ через механизм безопасности всего приложения.

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

Во 2-м случае возможно выполнить описанный выше сценарий, но намного дороже во время разработки и, возможно, в конфигурации.

...