24/07/2008 15:25
Baseado no popular e muito útil mod_rewrite apache, UrlRewriteFilter Java Web é um filtro para qualquer aplicação J2EE Web server, que permite você reescrever URLs antes mesmo de chegar ao seu código. Trata-se de uma ferramenta muito poderosa como o mod_rewrite do Apache. UrlRewriteFilter utiliza um arquivo XML para a configuração, chamado urlrewrite.xml (ele vai para o diretório WEB-INF). A maior parte dos parâmetros são implementados com Expressões regulares. Isso faz com que seja muito poderoso.
Para instalar o url rewrite filter:
Faça o download do zip e extraia-o no seu contexto do diretório ou seja, de modo que urlrewrite.xml vá para o diretório WEB-INF.
Adicione o seguinte código ao seu WEB-INF/web.xml
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Para configurar o seu urlrewrite.xml
Com um parâmetro:
<rule>
<from>/produtos/([0-9]+)</from>
<to>/produtos/index.jsp?produto=$1</to>
</rule>
<!--por exemplo, /produtos/1234 será transmitida aos produtos index.jsp?produto=1234.-->
Com dois parâmetros:
<rule>
<from>/produtos/([0-9]+)/([a-z]+)</from>
<to>/produtos/index.jsp?produto=$1&categoria=$2</to>
</rule>
<!--por exemplo, /produtos/1234/informatica será transmitida aos produtos index.jsp?produto=1234&categoria=informatica.-->
Para mais de dois parâmetros, devemos utilizar expressão ER. Inserimos o ^ (início da linha) no começo do path, e o $(fim da linha) no fim do path da tag
<rule>
<from>^/produtos/([0-9]+)/([a-z]+)/ ([a-z]+)$</from>
<to>/produtos/index.jsp?produto=$1&categoria=$2&nome=$3</to>
</rule>
<!--por exemplo, /produtos/1234/informatica/teclado será transmitida aos produtos index.jsp?produto=1234&categoria=informatica&nome=teclado.-->
Dentre os principais objetivos deste jar, destaco:
• uso independentemente da tecnologia (JSP, Servlet, Struts, etc.);
• detecção do Navegador (permite reescrever os URLs com base em pedido cabeçalhos HTTP, como usuário-agente ou charset);
• redirecionar para outra URL com base na data/hora;
• reescrever URLs;
• mapeamentos em servlet.
Um exemplo prático de uso dessa ferramenta, encontra-se no novo site da TV Claret, onde a utilizei para o gerenciamento das notícias. Confira em http://www.tvclaret.com.br/noticias
Postado por: Maikon Cezário
Tags: urlrewrite url amigável
Bem-vindo ao blog do Claretiano Web Center, o núcleo de desenvolvimento web de toda Ação Educacional Claretiana
Além de mostrar todo o trabalho desenvolvido pelos webdesigners Diego Magrin e Maikon Cezário, este blog tem como objetivo transmitir muito conhecimento.
© Copyright 2008Tableless XHTML RSS