erdana; mso-bidi-font-size: 14.0pt; mso-fareast-font-family: '?????? Pro W3'">Aplicações web com URLs amigáveis utilizando o URLRewriteFilter

 

Torne as URLs das suas aplicações web mais bonitas e fáceis de serem utilizadas através da formatação de URLs utilizando XML e expressões regulares.

As URLs são a porta de entrada de qualquer website ou sistema web, por isso é imporante que elas sejam escritas de forma a faciliar o acesso dos usuários. URLs muito longas são complicadas de serem lembradas, anotadas ou mesmo digitadas (em dispositivos móveis, por exemplo). As coisas pioram quando é necessário passar parâmetros através da URL, algo que é bastante realizado quando se deseja especificar uma opção escolhida pelo usuário ao utilizar um recurso, especificar o id de um objeto que o usuário deseja acessar, etc.

Para entendermos melhor a importância da utilização de URLs amigáveis, tomemos como exemplo a implementação de um mecanismo de busca de produtos em um website. Essa busca seria normalmente disponibilizada através de um endereço parecido com www.website.com/busca.jsp. Se quisessemos utilizar a busca avançada, a URL seria www.website.com/busca.jsp?tipo=avançada. Após utilizarmos a busca, quando clicássemos em um produto para ver os detalhes, teríamos como URL algo parecido com www.website.com/busca, www.website.com/busca/avancada  e www.website.com/produtos/detalhes/123.

Como implementar URLs amigáveis em Java?

Uma solução para essa pergunta é implementar um Filtro de Servlet para interceptar uma requisição HTTP, interpretar a URL digitada (por exemplo, www.website.com/busca/avancada), convertê-la em uma nova URL (como www.website.com/busca.jsp?tipo=avancada) e direcionar o usuário para ela. Implementar esse filtro não é algo muito simples, mas poderemos utilizar em nossos trabalhos um filtro pronto, o URLRewrite Filter, disponível em http://tuckey.org/urlrewrite/.

A utilização desse filtro é bem simples. Inicialmente, deve-se fazer o download do filtro no site citado anteriormente, adicionar o arquivo urlrewrite.jar ao diretório WEB-INF/lib do projeto e acrescentar a declaração do filtro no web.xml da aplicação (Listagem 1). Nessa listagem, é declarado um filtro de servlet cujo nome é URLRewriteFilter (linha 02) e cuja classe é org.tuckey.web.filters.urlrewrite.UrlRewriteFilter (linha 03). Além disso, o filtro é mapeado para a URL “/*” (linha 07), o que significa que qualquer URL da aplicação será interceptada pelo filtro.

 

Listagem 1. Declaração do URLRewrie no web.xml

01. <filter>

02.    <filter-name>UrlRewriteFilter</filter-name>

03.    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> ...

Quer ler esse conteúdo completo? Tenha acesso completo