2016-05-03 2 views
0

Я хотел бы отобразить сервлет для каждого URL-адреса, заканчивающийся на «/ jsfinspector». Например:URL-адрес WebServlet, заканчивающийся/jsfinspector

  • http://localhost/myapp/pages/somewhere/jsfinspector
  • http://localhost/myapp/jsfinspector

Можно ли это сделать? Очень просто, не объявляя все возможные шаблоны url в web.xml?

ответ

1

API-интерфейс Servlet не поддерживает это.

Лучше всего создает @WebFilter("/*") который направляет к @WebServlet("/jsfinspector"), когда совпадает с URL, как показано ниже:

if (request.getRequestURI().endsWith("/jsfinspector")) { 
    request.getRequestDispatcher("/jsfinspector").forward(request, response); 
} else { 
    chain.doFilter(request, response); 
} 

Вы можете при необходимости экстракте оригинал запроса URI в сервлет, как показано ниже:

String originalRequestURI = (String) request.getAttribute(RequestDispachter.FORWARD_REQUEST_URI); 
+0

Спасибо BalusC! Это очень помогает;) – Rapster