Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

O artigo tem como principal objetivo apresentar a versão 3.0 da tecnologia Java Servlet e como é possível integrar esta nova versão com aplicações Java EE 6.


Para que serve:

O artigo apresenta a tecnologia Java Servlet 3.0, seus principais recursos e, demonstra de forma objetiva como utilizar esta nova versão de Servlet com aplicações Java EE 6.


Em que situação o tema é útil:

O artigo é útil para profissionais e estudantes de análise de sistemas que queiram aprender a tecnologia Java Servlet 3.0 e Java EE 6.

Quando nos referimos ao desenvolvimento de aplicações Java voltado para web não existe a possibilidade de não pensar na tecnologia Java Servlet. Dentro de um contexto Web, o Servlet é a tecnologia mais importante por ter se transformado na base para outras tecnologias Java baseadas na Web, como as páginas JSP por exemplo.

No início, com o surgimento da internet, o grande desafio era oferecer recursos para gerar conteúdos dinâmicos, onde até então eram apresentadas páginas estáticas simples e pouco atrativas. A geração deste conteúdo dinâmico na Web era a grande proposta dos Servlets e que deu bastante certo.

Com o passar dos anos, o Java foi evoluindo acompanhando a constante necessidade de se tornar uma linguagem que atendesse basicamente a dois mundos de aplicações: Aplicações Web e aplicações Corporativas.

Apesar das aplicações Web conseguirem interagir com as aplicações corporativas (Java EE) e vice-versa, estes grupos de aplicações Java sempre foram disponibilizadas em containers completamente diferentes, assim como os recursos utilizados para aplicações web e corporativas.

Com o lançamento do Java Enterprise Edition 6, esta realidade foi aproximada tornando a interação entre as tecnologias mais simples e objetiva. Entre as novidades do Java EE 6, podemos citar como carro-chefe o lançamento do Enterprise Java Beans para versão 3.1 e a evolução do Java Servlet para versão 3.0.

A grande aproximação destas duas realidades de aplicações está fortemente relacionada ao uso das anotações criadas para serem utilizadas com Java Servlets, permitindo também a injeção de dependência de componentes de aplicações corporativas dentro do contexto Web de forma transparente.

Neste artigo, serão apresentados os principais novos recursos trazidos para aplicações Web através da nova especificação de Java Servlet, versão 3.0, formalmente especificado pela JSR 315 e a interação com os novos recursos da tecnologia Java EE 6. Os exemplos apresentados foram executados com o JBOSS 6 M2.

A seguir vejamos mais detalhes da tecnologia Servlet e o que mudou na forma de criar e disponibilizar este recurso no contexto web.

Breve descrição de Java Servlet

O Servlet é uma tecnologia baseada em componente Web gerenciados por um servidor para geração de conteúdo dinâmico. Estes servidores responsáveis pela disponibilização dos Servlets são extensões de servidores Web capazes de prover as funcionalidades necessárias para disponibilizar e atender as chamadas realizadas por um cliente a este Servlet através do protocolo HTTP/HTTPS.

A principal função deste servidor Web é prover serviços que recebam as requisições, decodificando os MIMES do request, e enviem as respostas da requisição, codificando os MIMES do response.

Os servidores Web gerenciam os Servlets através do seu ciclo de vida, onde basicamente este ciclo é composto pela execução de três métodos definidos na interface javax.servlet.Servlet, são eles; init(), service() e destroy(). Antes de definirmos formalmente as responsabilidades de cada um dos métodos citados a pouco, vejamos através da Figura 1 o fluxograma que define o comportamento de um servidor Web quando um Servlet é chamado.

Figura 1. Atendimento de solicitação ao Servlet pelo servidor Web

Na Figura 1 podemos perceber no fluxo de execuções realizado pelo servidor Web que um Servlet é carregado apenas uma única vez e apenas será carregado novamente se possuir uma nova versão deste Servlet, ou se este ainda não tiver sido executado, ou ainda, se o método destroy() é invocado.

De uma forma resumida, neste momento já podemos definir cada método que compõem o Ciclo de Vida de um Servlet. O método init() é apenas executado quando o Servlet ainda não tiver sido carregado pelo servidor Web; enquanto o Servlet estiver carregado e for atual, este método não será executado novamente.

O método service() sempre é executado quando um Servlet é chamado ou destruído. Dentro deste método podemos implementar alguns trechos de código que devem ser executados sempre que o Servlet for chamado.

O método destroy() é chamado pelo servidor Web quando existe a necessidade de liberação de recursos alocados pelo Servlet, ou quando programaticamente queremos eliminar um Servlet e forçarmos a recarga deste Servlet. Este método só é executado após o método service() ter terminado sua execução.

...
Quer ler esse conteúdo completo? Tenha acesso completo