2012-07-01 1 views
2

Я хочу перенаправить все соединения (/*) на определенный сервлет, за исключением определенного файла (someFile.xml).Web.xml - не перенаправление определенного файла или url на сервлет

У меня есть следующий раздел в web.xml:

<servlet-mapping> 
     <servlet-name>someServlet</servlet-name> 
     <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Как я могу изменить его так, чтобы /someFile.xml не будет отображаться на этом сервлета.

Если я не могу это сделать, используя web.xml, есть ли другой способ?

ответ

2

Вы можете создать сервлет и отобразить его для получения /someFile.xml.

<servlet-mapping> 
      <servlet-name>someServlet</servlet-name> 
      <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
      <servlet-name>SomeFileServlet</servlet-name> 
      <url-pattern>/someFile.xml</url-pattern> 
    </servlet-mapping> 

Таким образом, все запросы, кроме /someFile.xml пойдет someServlet и запрос /someFile.xml пойдет на SomeFileServlet.

**/* mapping in web.xml it answers all requests except other path mappings.** 
+0

Ярмарка, это хорошее решение, и оно должно работать как очарование! – verisimilitude

+0

Я не хочу перенаправлять на другой сервлет. Я хочу, чтобы someFile.xml был получен, как и apache –

+0

@ErikSapir у вас есть apache http server ?? от апаша, значит, и имел в виду тат? если да, вам нужно изучить правила перезаписи apache. –