Во-первых, когда дело доходит до отображения сервлета, приоритет выглядит следующим образом:
- Отображение пути:
/rest/*
- Отображение расширения:
*.png
- По умолчанию:
/
Отображение пути + отображение расширения: плохая идея
Таким образом, вы не можете сопоставить статические ресурсы по их расширению файла в существующем отображении пути (это было быВ любом случае, это плохая идея - управлять всеми статическими расширениями файлов в вашем файле web.xml.
Приоритет сопоставления пути> ext mapping.
Использование фильтра
Настройка UrlRewriteFilter в вашемweb.xml
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
И в вашем urlrewrite.xml
файле конфигурации:
<urlrewrite default-match-type="wildcard">
<rule>
<from>/rest/images/**</from>
<to>/images/$1</to>
</rule>
</urlrewrite>
Не отображать статические ресурсы в / rest
Это может не соответствовать вашим потребностям,но это мой любимый!Сопоставление статических ресурсов в /rest
говорит «Привет, разработчик, давай GET / POST / PUT / DELETE с этими статическими ресурсами, все в порядке» :
- Если вы не можете GET/ PUT / POST / DELETE эти ресурсы, тогда вы не должны отображать их в
/rest
.Это производит неправильное впечатление. - Если вы действительно хотите манипулировать этими ресурсами через веб-сервис REST, то пусть Джерси выполняет тяжелую работу и обслуживает эти ресурсы (см. jersey-samples дляпример).