Si está dentro de un servlet controlador de frente que se asigna en un patrón de prefijo , entonces solo puede usar HttpServletRequest#getPathInfo()
.
String pathInfo = request.getPathInfo();
// ...
Suponiendo que el servlet en su ejemplo se asigna en /secure
, entonces esto va a volver /users
que sería la información de interés exclusivo en el interior de una típica servlet controlador frontal.
Sin embargo, si el servlet está mapeado en un patrón de sufijo (los ejemplos de su URL no indican que sea así), o cuando está realmente dentro de un filtro (cuando el servlet a ser invocado no es necesariamente determinado aún, por lo que podría volver getPathInfo()
null
), entonces su mejor apuesta es subcadena de la URI de la solicitud a sí mismo dependiendo de la duración de la ruta de contexto utilizando el método habitual String
:
HttpServletRequest request = (HttpServletRequest) req;
String path = request.getRequestURI().substring(request.getContextPath().length());
// ...
posible duplicado de [¿Cuál es la diferencia entre los métodos getRequestURI y getPathInfo en HttpServletRequest?] (http://stackoverflow.com/questions/4931323/whats-the-difference-between-getrequesturi-and-getpathinfo-methods-in-httpservl) – Leonel