Понимание ресурса и контекста Jetty в WAR и других развертываниях - PullRequest
0 голосов
/ 12 мая 2019

Причал имеет ресурс и контексты.Я пытаюсь понять их лучше.

Ресурс - это URL, путь к файлу или что-то еще?Ресурс относительно WAR, файловая система, на которой он работает, или что-то еще?Как вы указываете Ресурс на что-то внутри WAR?

Что такое resourceBase?Как это влияет на ресурсы?

И является ли Context всего лишь способом обозначить начало пути URL?Если нет, что такое Контекст?

Я прочитал документы по API, но не вижу, что они определены.

1 Ответ

0 голосов
/ 13 мая 2019

Слово «Ресурс» перегружено.

  • Ресурс - это термин, используемый в спецификации HTTP при отправке запроса на любой URL-адрес (см. «Целевой ресурс» )
  • Ресурс - это вторая буква в аббревиатуре URL (Uniform Resource Locator) и URI (Uniform Resource Identifier).
  • Ресурс также является определением того, что может быть доступно серверусам компьютер:

    • путь файловой системы в виде ссылки на этот путь в виде строки (/path/to/my/...).
    • путь файловой системы в виде ссылки на этот путь в виде строки (file://...) в виде строки.
    • ссылка на строковый URL (http://...) на ресурс, не являющийся файловой системой.
    • ссылка на путь к классам (/content/in/classpath)
    • ссылка на файл Jar (jar:file:///path/to/foo.jar!/path/inside/))
    • a java.io.File ссылка.
    • a java.nio.file.Path ссылка.
    • a java.net.URL ссылка (может быть любым поддерживаемым протоколом / схемой Java-URL).
    • a java.net.URI ссылка (может быть любым поддерживаемым протоколом / схемой java url).
  • A Ресурс может bСсылка на конкретную вещь, которая имеет содержимое (например, файл) или каталог других ресурсов.

  • «База ресурсов» всегда является ссылкой на стиль каталога.
  • Запроспотому что содержимое в «Базе ресурсов» всегда относится к этой Базе ресурсов и имеет защиту, чтобы держать вас в этой Базе ресурсов (или выдавать ошибку).(например: База ресурсов /path/to/base/ и запрос /css/main.css вернут /path/to/base/css/main.css, но запрос /../../../secret.txt вернет ошибку)

Теперь слово «Контекст»,это то, что вы видите в самой спецификации Servlet в концепции javax.servlet.ServletContext

  • Определяет набор ресурсов (физических, статических, динамических, генерируемых и т. д.), к которым можно получить доступ через общий контекстпуть.
  • Процессы (например, сервлеты и фильтры) в этом контексте могут обращаться к другим ресурсам в этом контексте.
  • Процессы вне контекста не могут получить доступ к контенту в этом контексте.
  • Сам контекст содержит информацию, к которой могут получить доступ все компоненты в этом контексте (например, атрибуты, init-параметры, ограничения безопасности, роли безопасности, отображения mime-типа, кодировки локали, конфигурация сеанса, прослушиватели, временные каталоги, рабочие каталоги,и т.д ..)
...