... Похоже, что он захватывал все, что не было захвачено, но это было одно из других правил, которые я не понимаю, потому что не было * в конце шаблона url. ...
[[К сожалению, термин «сервлет по умолчанию» перегружен для обозначения разных вещей, что приводит к путанице. Я постараюсь быть ясным.]]
Шаблон url "/" является специальным (Rogue Wave называет это "отображением по умолчанию"). Это определяет «сервлет по умолчанию» приложения, который используется, когда запрос URL не совпадает с другими шаблонами (пункт 3 SRV.11.2 и элемент № 4 SRV 11.1). Очевидно, "/" обрабатывается так, как если бы вы указали "/*".
... Кажется, это также прямо противоречит документации ...
Согласен, я думаю, что в движке приложения есть ошибка, поэтому она не соответствует документации, которую вы цитировали. Вот моя теория о том, что происходит. Поскольку для вашего приложения есть сервлет по умолчанию (в результате определения сервлета для шаблона URL "/"), приложение перестает использовать "сервлет по умолчанию", предоставленный контейнером для приложений, которые не определяют свой собственный "сервлет по умолчанию". ». Контейнер «по умолчанию» «по умолчанию» - это то, что обеспечивает поведение по умолчанию для обслуживания статических файлов. Я думаю, это согласуется с поведением некоторых контейнеров.
Интересно, что произойдет, если вы попытаетесь указать сервлет для шаблона URL, который соответствует статическому файлу. Будет ли он обслуживать файл (как указано в документации) или вызывать сервлет (как указано в этой теории).
... Итак, как я могу иметь правило, которое соответствует базе моего домена (например, http://www.example.com/) и все же позволяет статическим файлам фильтровать?? *
Если теория верна, решения, предоставленные jacob (адаптированным для движка приложений google) и zockman, похоже, они будут работать - они сопоставляют статические файлы с сервлетом по умолчанию контейнера "default".
Единственная другая идея, которую я имею, - написать «сервлет по умолчанию» вашего приложения, чтобы проверить запрос на наличие «/» или нет. Если так, справляйся. Если нет, тогда (каким-то образом) вызовите «сервлет по умолчанию» контейнера «по умолчанию» для обработки запроса (который, мы надеемся, кеширует файл). Надеемся, что после того, как статический файл будет обработан один раз, в будущем кэширование обойдет сервлет (-ы).
Извините, я не могу дать более конкретный код или предоставить код - я еще не работал с движком приложений Google (пока!).
Ref: