Ajax em Java – coletânea de referências

[Atualizado em 16 de agosto e 20 de dezembro de 2007, 27 de abril de 2008.]

Em meu artigo Novo impulso ao JavaScript, estive comentando como a onda de alta interatividade da Web 2.0 e o mecanismo AJAX estão impulsionando a evolução de componentes dinâmicos na web.

AJAX, acrônimo para Asynchronous Javascript And XML (JavaScript Assíncrono e XML), é a técnica de uso combinado de tecnologias existentes — JavaScript, XML e o objeto XMLHttpRequest — que visa propiciar mais dinamismo a páginas web, de forma a melhorar a experiência da interação do usuário. Assim, não chega a ser uma nova tecnologia em si, mas uma ampliação das técnicas de HTML Dinâmico (DHTML) no cliente web, agora interagindo também com o lado servidor.

O princípio de AJAX é, a partir de uma página web no navegador, submeter assincronamente pequenas requisições adicionais ao servidor web, e utilizar seu resultado em manipulações dinâmicas na página atual, sem a necessidade do usuário navegar para uma página inteiramente nova.

A organização OpenAjax Alliance, que reúne mais de 80 dos principais fornecedores e projetos de software livre relacionados a tecnologias para web, é dedicada a promover a adoção de AJAX de forma aberta e interoperável.

No campo estrito do HTML dinâmico com JavaScript, aplicável a páginas web independente da tecnologia no servidor, há excelentes frameworks — livres e gratuitos — de componentes web com suporte a AJAX:

Destaque também para as bibliotecas de apoio jQuery (dica do leitor Renato Silva; veja também docs, blog, refcard, tutorial, jQuery Brasil, exemplos) e Scriptaculous (veja Wiki com documentação e demos). Veja também Other Frameworks (mootools, Prototype, jQuery, YUI Library, MochiKit, Tibco General Interface, Scriptaculous, Dojo Toolkit, Base2, ExtJS), por Qooxdoo.

Falar de AJAX em aplicações web dinâmicas implica rapidamente em avaliar quais ferramentas no lado servidor se adequam melhor e mais facilmente ao tratamento de páginas e componentes dinâmicos. Este já foi tema de artigo meu em novembro de 2006, AJAX cresce rápido em Java.

Partindo dos componentes do Dojo Toolkit e outros, já existem plataformas e frameworks abertos e flexíveis para o suporte a AJAX em Java. As seguintes referências de destaque são software livre:

Diversos frameworks web MVC oferecem suporte a componentes Ajax. Em Java, uma das primeiras iniciativas de porte neste sentido foi o do Google Web Toolkit (GWT), poderoso, prático e livre, que já nasceu com foco em Ajax. Frameworks como Wicket — veja Interview: How Wicket Does Ajax, Javalobby, 2008-04-25 –, Struts 2 (WebWork) e NextApp Echo2, entre outros, incorporaram suporte a Ajax ao longo de suas evoluções. Para Tapestry, existe a biblioteca Tacos de componentes Ajax.

Contudo, creio que o uso dos componentes dinâmicos AJAX está atingindo o seu auge quando aplicado ao padrão JavaServer Faces (JSF), que tem como fundamento exatamente a programação web em Java orientada a componentes e eventos. Estão surgindo componentes JSF cada vez mais ricos e com melhor suporte a AJAX. Cito as principais bibliotecas/frameworks JSF livres que conheço, com suporte a AJAX:

Uma tabela comparativa de várias bibliotecas pode ser encontrada em AJAX JSF Comparison Matrix.

Veja também as indicações em Uma centena de sugestões para programação Ajax e Javascript, por Cid Andrade, 2008-04-16.

Para saber mais (em inglês):

15 Replies to “Ajax em Java – coletânea de referências”

  1. Descobri o anúncio NetBeans do dia 27 de junho, Project Woodstock: The Next Generation of Smarter User Interface Components
    http://www.netbeans.org/servlets/NewsItemView?newsItemID=1064

    Lá estava uma informação que me faltava. Os componentes JSF do NetBeans Visual Web Pack têm identidade própria. Constituem o Projeto Woodstock. Os componentes foram inicialmente desenvolvidos pelo time da Sun para o Studio Creator 2 IDE. Com a doação de código do Studio Creator para o projeto NetBeans Visual Web Pack, estes componentes foram tornados código aberto como o Projeto Woodstock hospeado no java.net, desde fevereiro de 2007.

    Este artigo foi atualizado para citar os componentes do Projeto Woodstock e, não apenas o NetBeans Visual Web Pack que os inclui.
    https://woodstock.dev.java.net/

  2. Tibco General Interface ganhou o prêmio de Melhor open source em desenvolvimento de software (InfoWorld BOSSIE Awards) na categoria AJAX toolkit:
    http://www.infoworld.com/slideshow/2007/09/116-best_of_open_so-4.html

    No InfoWorld 2007 Technology of the Year Awards, App Dev, Dojo Toolkit levou Melhor Kit AJAX Open Source:
    http://www.infoworld.com/slideshow/2007/01/25-2007_technology-7.html
    http://www.infoworld.com/article/06/07/31/31FEajax_1.html

    Na mesma premiação, o Melhor Kit AJAX incluindo ferramentas comerciais foi Backbase 3.2:
    http://www.infoworld.com/slideshow/2007/01/25-2007_technology-6.html
    http://www.infoworld.com/article/06/11/27/48FEajax_1.html

    No Tech of the Year Awards em janeiro 2007, Adobe Flex foi escolhida a melhor plataforma RIA:
    http://www.infoworld.com/slideshow/2007/01/25-2007_technology-8.html
    http://www.infoworld.com/article/06/08/10/33TCflex_1.html

    Mas em setembro o BOSSIE Awards premiou OpenLaszlo, superando Flex, na categoria Rich Internet Application framework:
    http://www.infoworld.com/slideshow/2007/09/116-best_of_open_so-3.html

  3. Márcio, legal no seu post!
    Gostaria de saber q há implementação javascript em Ajax sem componente suportado do JSF e dar um submit pelo através o Managed Bean do JSF (Ajax + JavaScript + JSF)? semelhante o Ajax do Servlet: xmlHTTP.open(“GET”,url,true);
    onde “url” é action do Servlet.
    Desde já agradeço.

  4. I’m french and it seems to be a great post. Unfortunately, I doesn’t fully understand Portuguese (partial understanding because it’s a latin language like french). And on-line translation services are of no help for IT articles. Do you have a translation of this article in english? Or some references to similar english articles? It deals exactly with what I seek, so…

Deixe uma resposta