Как исключить / перенаправить определенный шаблон URL в модуле web.xml или сервлете Guice? - PullRequest
6 голосов
/ 16 сентября 2011

Мне нужно подать мое основное приложение с шаблоном URL "/*", чтобы этот шаблон соответствовал сервлету. Проблема, с которой я столкнулся, заключается в том, что все файлы css и изображения, расположенные в "/css/all.css", "/ images /" и т. Д., Проходят через этот сервлет, что нежелательно. Я хочу, чтобы эти файлы были доступны напрямую. Как лучше справиться с этой ситуацией?

Примечание. Я использую модуль сервлета Guice для настройки шаблонов.

Спасибо!

Ответы [ 2 ]

5 голосов
/ 16 сентября 2011

Нам нужно точно знать, какие запросы следует направлять вашему сервлету, чтобы мы знали, как кодировать правила. Я не могу сказать, следует ли а) все запросы, кроме CSS и изображений, отправлять вашему сервлету, или б) ваш сервлет должен обрабатывать запросы только к определенному набору папок / каталогов. Возможно, вы захотите сделать одну из двух вещей:

Исключить определенные папки:

^/(?!css|images).*

Или включить определенные папки:

^/myservlet/.*

Вам следует изменить эти * символы на +, если, как вы указали в предыдущем вопросе, вам требуется хотя бы один символ после / в шаблоне.

0 голосов
/ 21 марта 2014

Это должно работать для вас:

Сделайте так, чтобы все ваши изображения / css и другие ресурсы проходили через сервлет по умолчанию . И сделайте отображение следующим образом:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.xml</url-pattern>
    <url-pattern>*.html</url-pattern>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.jpg</url-pattern>
    <url-pattern>*.gif</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
...