La API de Servlet estándar no es compatible con esta instalación. Es posible que desee utilizar un filtro de reescritura de URL para esto, como el de Tuckey (que es muy similar al de Apache HTTPD mod_rewrite), o agregar una verificación en el doFilter()método de escucha del filtro /*.
String path = ((HttpServletRequest) request).getRequestURI();
if (path.startsWith("/specialpath/")) {
chain.doFilter(request, response); // Just continue chain.
} else {
// Do your business stuff here for all paths other than /specialpath.
}
Si es necesario, puede especificar las rutas a ignorar como parte init-paramdel filtro para poder controlarlo de web.xmltodos modos. Puede obtenerlo en el filtro de la siguiente manera:
private String pathToBeIgnored;
public void init(FilterConfig config) {
pathToBeIgnored = config.getInitParameter("pathToBeIgnored");
}
Si el filtro es parte de la API de un tercero y, por lo tanto, no puede modificarlo, entonces asigne un mapa más específico url-pattern, por ejemplo, /otherfilterpath/*y cree un nuevo filtro /*que reenvíe a la ruta que coincida con el filtro de un tercero.
String path = ((HttpServletRequest) request).getRequestURI();
if (path.startsWith("/specialpath/")) {
chain.doFilter(request, response); // Just continue chain.
} else {
request.getRequestDispatcher("/otherfilterpath" + path).forward(request, response);
}
Para evitar que este filtro se llame a sí mismo en un bucle infinito, debe dejarlo escuchar (despachar) REQUESTsolo y el filtro de terceros FORWARDsolo.
Ver también: