Este es uno de esos artículos “de propósito específico”. Supongo que los que trabajen en entornos “con mucha burocracia” entenderán mejor por qué no siempre es posible tocar el apache. La idea de este post es ver como podemos tener una funcionalidad decente de reescritura de URLs directamente en el contenedor de aplicaciones.
La pieza clave para conseguir nuestro objetivo es UrlRewriteFilter, que como sus propios autores proclaman “Es un filtro basado en mod_rewrite válido para cualquier contenedor estándar de aplicaciones JEE que permite reescribir URLs antes de que lleguen a nuestro código”. Y además funciona.
El filtro es muy sencillo de instalar, tan solo son necesarios unos pocos pasos muy sencillos:
- Guardar el jar en el lib de nuestra aplicación.
- Modificar el web.xml para que haga uso del filtro:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
- Incorporar en el WEB-INF de nuestra aplicación un fichero urlrewrite.xml, que contendrá las reglas para las reescrituras
Una vez realizados estos pasos solo nos queda escribir las reglas que consideremos necesarias en nuestro caso. El fichero urlrewrite.xml de ejemplo incluye nociones básicas al respecto. A modo de ilustración, para convertir una URL como /searchPage.do?term=casco&locale=es&make=honda en algo como /es/honda/que-contengan/casco, necesitaríamos una regla como la siguiente:
1 2 3 4 |
|
Con estos sencillos pasos ya tenemos un soporte decente para construir URLs bonitas en aplicaciones Java, sin tener que hacerlo todo “a mano” ni depender del Apache.
Lo sentimos, pero los comentarios están cerrados
Falta añadir que si tienes algún FrameWork como Struts2 (por ejemplo), no te funcionará sino agregas las reglas FORWARD en dicho filtro.
Un POST perfecto, muy bien explicado.