Как исключить конкретный путь из web.xml? - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть эта конфигурация:

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

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

Мне нужно исключить "/xrebel", так как Restlet перехватывает этот путь и не может получить доступ к XRebel. Однако мне нужно, чтобы url-pattern было /*

Что можно сделать, чтобы получить доступ к такому /xrebel пути

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Одним из возможных решений является создание фильтра с таким же шаблоном URL для перехвата запроса.

В вашем фильтре вы можете проверить, равен ли шаблон /xrebel, а затем обработать запрос так, как вы хотите.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    String requri = ((HttpServletRequest) request).getRequestURI().substring(((HttpServletRequest) request).getContextPath().length() + 1);
    System.out.println(requri);
    if(requri.equals("/xrebel")){

    //do something else

    }else{
       chain.doFilter(request, response);   //continue normally
      }
}
0 голосов
/ 27 апреля 2018

У меня была такая же проблема при разработке веб-сервисов в прошлом году. Но после долгих исследований я обнаружил, что не существует простого решения проблемы.

Вместо этого лучший подход, который я нашел, состоял в том, чтобы использовать префикс URL сервлета.

Таким образом, для всех отображений, которые вы хотите обработать с помощью RestletServlet, добавьте префикс к URL-адресу, например / rest / *

Надеюсь, это поможет.

...