2008-11-17 2 views
1

Я использую следующий сервлет-отображение в моем web.xml файле:Strip изображения, CSS и JS из сервлета-отображения

<servlet> 
    <servlet-name>PostController</servlet-name> 
    <servlet-class>com.webcodei.controller.PostController</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>PostController</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Чтобы сделать какой-то поиск. ex:

http://www.myweb.com/The search string here

Но проблема в том, что CSS, JS и Images рассматриваются как запрос на поиск.

Есть любые шаблоны, которые вычеркивают * .css, * .js, * .gif и т. Д., Поэтому запросы не должны проходить через мой контроллер?

Большое вам спасибо, до свидания!

ответ

2

два варианта приходят на ум:

1) Как правило, в веб-приложений, как это, URL-адреса «действия», которые обрабатываются в сервлет, приведены либо в подкаталоге, как «/actions/*» или приведены расширение «*.action» или «*.do» (это то, что делает Struts). Таким образом, понятно, какие URL-адреса предназначены для сервлета. Это скорее комплексное решение, чем эксклюзивное, о котором вы просите, но я не думаю, что вы хотите.

2) Несколько более авантюрный вариант - настроить сервер веб-приложений за установкой apache, которая обслуживает изображения, css и т. Д. В виде плоских файлов, отправляя только все остальное на сервер приложений. Как правило, это делается для снятия нагрузки с вашего сервера приложений. Это потребует, чтобы вы скопировали все эти файлы в каталог separete для обработки apache.

1

Вместо того, чтобы вносить в черный список некоторые расширения, вы можете использовать белый список шаблонов URL, которые попадают в ваш сервлет PostController. Например:

<servlet> 
    <servlet-name>PostController</servlet-name> 
    <servlet-class>com.webcodei.controller.PostController</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>PostController</servlet-name> 
    <url-pattern>/*.jsp</url-pattern> 
</servlet-mapping> 

если вы используете простой JSPs. Теперь HTTP GET-запросы для файлов с расширением * .css, * .gif и т. Д. Не будут перенаправляться через этот сервлет.

Как указывал опросник, существует еще много URL-адресов, которые не должны направляться через этот контроллер, чем в противном случае.

0

Jetty интерпретирует web.xml, как вы ожидаете. Недавно я раскрыл эту проблему, когда я переместил приложение с причала в tomcat и внезапно не смог увидеть свои статические ресурсы. Очень расстраивает.