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-param
del filtro para poder controlarlo de web.xml
todos 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) REQUEST
solo y el filtro de terceros FORWARD
solo.
Ver también: