Я пытаюсь реализовать сервлет, который получает необработанные запросы, и решает их обработать или перенаправить на другой сервер. Он похож на балансировщик нагрузки, где полученный запрос отправляется в один из пунктов назначения (в моем случае 2). Один из пунктов назначения - удаленный (на другом хосте). Кроме того, запросы могут поступать в корень (http://mycompany.com/).
Поскольку я хочу получать необработанные запросы, я реализовал свой собственный сервлет (подклассификация HttpServlet), и это отлично работает. Мой сервлет выглядит так:
public class MyProxyServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
        processOrForward(req, resp);
    }
    // also doGet(), doHead(), ...
}
Поскольку служба, которую я хочу обработать, может отправлять запросы корневому файлу, я хотел бы отобразить свой сервлет как сервлет по умолчанию, тем самым получив любой запрос, который не имеет явного отображения сервлета. Предположим, что мое имя сервлета является "myservlet" и работает вдоль другого сервлета "foo", я ожидаю, что все запросы в форме http://mycompany.com/foo/... для доставки в foo и все остальное (например,/,/bar/...,/myservlet/...) в "myservlet". Рассматривая более ранние сообщения (например, корневое сопоставление здесь и здесь или переписывание URL здесь), я думал, что понял, но это не сработает.
Вот мой web.xml:
<web-app>
  <servlet>
    <servlet-name>ProxyServlet</servlet-name>
    <servlet-class>com.mycompany.MyProxyServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>ProxyServlet</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
В приведенном выше web.xml для url-шаблона я попробовал
"/" and "/*" and empty (i.e., <url-pattern></url-pattern>), all behave the same -->
    Requests to root (/)goes to tomcat default servlet
    Requests to /myservlet/... are handled by "myservlet"
    Requests to /fubar/... are always 404
Есть ли способ повернуть мой сервлет по умолчанию. I.e, любой запрос, который не привязывается к сервлету, не подходит для моего (это даже приемлемо для получения всех запросов, поскольку я могу развернуть этот сервлет в своем собственном контейнере). В случае, если это имеет значение, я использую Tomcat 7.0.30 на Ubuntu 12.10.
