Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Desvendando os Servlets 3.0 - Java Magazine 81
Apresentação das novidades mais significativas introduzidas na nova versão da especificação de servlets, a 3.0. Cada uma das funcionalidades é explicada em detalhes, fazendo um comparativo com o que existia na versão anterior da especificação.
Java Magazine 81
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 81
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 81
Desvendando os Servlets 3.0
Conheça as principais novidades dos Servlets 3.0
Em novembro de 2009 a Sun lançou a nova versão do Java EE (Enterprise Edition). Batizada de Java EE 6, esta versão trouxe um grande número de mudanças significativas nas mais diversas especificações que compõem a plataforma. Uma destas especificações é a JSR 315, que define a versão 3.0 dos servlets.
Os servlets estão presentes no Java EE há bastante tempo. Quem começou a trabalhar com eles há alguns anos certamente não notou grandes mudanças neste período. Na prática, pouca coisa foi modificada até a versão 2.5, que era a versão que vigorava até o ano passado. Agora, com a introdução da versão 3.0, a Sun procurou adicionar alterações que mudaram a forma de trabalhar com os servlets, facilitando a sua configuração e aumentando a produtividade do desenvolvedor.
Mesmo depois do aparecimento destas novidades, vale ressaltar que ainda é possível usar os servlets da forma como você já está habituado. A nova versão da especificação abre novas possibilidades, mas, ao mesmo tempo, mantém a compatibilidade com versões anteriores.
Este artigo abordará as principais mudanças na especificação, que são o suporte à configuração usando annotations, carregamento em tempo de execução e chamadas assíncronas a servlets.
Até o momento, apenas o servidor de aplicações GlassFish 3.0, que é a implementação de referência da Sun, suporta o Java EE 6 na sua totalidade.
Configurando servlets através do uso de annotations
Até a especificação 2.5, a criação de um servlet obrigava o desenvolvedor a criar a sua classe (que estende de HttpServlet) e configurá-lo corretamente no arquivo web.xml. A Listagem 1 mostra um exemplo de classe de um servlet, enquanto a Listagem 2 mostra como configurar, no web.xml, o servlet criado. De acordo com a configuração, ProcessarServlet é mapeado para /Processar.
Na nova versão da especificação, é possível utilizar annotations em substituição às configurações anteriormente feitas no arquivo web.xml. Isto simplifica o processo, uma vez que todas as informações necessárias podem ficar restritas à classe do servlet. A Listagem 3 mostra o mesmo ProcessarServlet, mas agora usando annotations.
No Java EE 6, o web.xml é um arquivo de uso opcional ao desenvolver aplicações web.
A annotation @WebServlet deve ser utilizada para configurar o servlet. No exemplo apresentado, o atributo urlPatterns foi utilizado para indicar o padrão de URL que deverá ser mapeado para o servlet. Ele permite também a definição de mais de um pattern, o que representa, na prática, que você pode delegar a um servlet o atendimento de requisições que usam diversos padrões de URL. A vantagem desta abordagem é que você centraliza suas operações em apenas um objeto e, dependendo da requisição feita, pode tratá-la de forma adequada.
A annotation @WebServlet também possui outros atributos, como name (para definir um nome para o servlet), description (para definir uma descrição), asyncSupported (para suporte a servlets assíncronos, que serão abordados mais adiante) e initParams.
O atributo initParams merece um destaque especial, pois possibilita que sejam fornecidos parâmetros ao servlet, os quais podem ser recuperados posteriormente através da chamada getServletConfig().getInitParameter(). Utilizar a passagem de parâmetros é interessante para tirar do código-fonte determinada informação que pode sofrer alteração com o passar do tempo. A definição de cada um dos parâmetros é feita através da annotation @WebInitParam. A Listagem 4 mostra como definir um parâmetro chamado msg e acessá-lo a partir do código do servlet.
Sempre que uma mesma configuração for feita através de annotations e no arquivo web.xml, o que está definido no arquivo possui precedência.
Listagem 1. Implementando o servlet.
package servlet;
public class ProcessarServlet extends HttpServlet {
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Conheça as principais novidades dos Servlets 3.0
Em novembro de 2009 a Sun lançou a nova versão do Java EE (Enterprise Edition). Batizada de Java EE 6, esta versão trouxe um grande número de mudanças significativas nas mais diversas especificações que compõem a plataforma. Uma destas especificações é a JSR 315, que define a versão 3.0 dos servlets.
Os servlets estão presentes no Java EE há bastante tempo. Quem começou a trabalhar com eles há alguns anos certamente não notou grandes mudanças neste período. Na prática, pouca coisa foi modificada até a versão 2.5, que era a versão que vigorava até o ano passado. Agora, com a introdução da versão 3.0, a Sun procurou adicionar alterações que mudaram a forma de trabalhar com os servlets, facilitando a sua configuração e aumentando a produtividade do desenvolvedor.
Mesmo depois do aparecimento destas novidades, vale ressaltar que ainda é possível usar os servlets da forma como você já está habituado. A nova versão da especificação abre novas possibilidades, mas, ao mesmo tempo, mantém a compatibilidade com versões anteriores.
Este artigo abordará as principais mudanças na especificação, que são o suporte à configuração usando annotations, carregamento em tempo de execução e chamadas assíncronas a servlets.
Até o momento, apenas o servidor de aplicações GlassFish 3.0, que é a implementação de referência da Sun, suporta o Java EE 6 na sua totalidade.
Configurando servlets através do uso de annotations
Até a especificação 2.5, a criação de um servlet obrigava o desenvolvedor a criar a sua classe (que estende de HttpServlet) e configurá-lo corretamente no arquivo web.xml. A Listagem 1 mostra um exemplo de classe de um servlet, enquanto a Listagem 2 mostra como configurar, no web.xml, o servlet criado. De acordo com a configuração, ProcessarServlet é mapeado para /Processar.
Na nova versão da especificação, é possível utilizar annotations em substituição às configurações anteriormente feitas no arquivo web.xml. Isto simplifica o processo, uma vez que todas as informações necessárias podem ficar restritas à classe do servlet. A Listagem 3 mostra o mesmo ProcessarServlet, mas agora usando annotations.
No Java EE 6, o web.xml é um arquivo de uso opcional ao desenvolver aplicações web.
A annotation @WebServlet deve ser utilizada para configurar o servlet. No exemplo apresentado, o atributo urlPatterns foi utilizado para indicar o padrão de URL que deverá ser mapeado para o servlet. Ele permite também a definição de mais de um pattern, o que representa, na prática, que você pode delegar a um servlet o atendimento de requisições que usam diversos padrões de URL. A vantagem desta abordagem é que você centraliza suas operações em apenas um objeto e, dependendo da requisição feita, pode tratá-la de forma adequada.
A annotation @WebServlet também possui outros atributos, como name (para definir um nome para o servlet), description (para definir uma descrição), asyncSupported (para suporte a servlets assíncronos, que serão abordados mais adiante) e initParams.
O atributo initParams merece um destaque especial, pois possibilita que sejam fornecidos parâmetros ao servlet, os quais podem ser recuperados posteriormente através da chamada getServletConfig().getInitParameter(). Utilizar a passagem de parâmetros é interessante para tirar do código-fonte determinada informação que pode sofrer alteração com o passar do tempo. A definição de cada um dos parâmetros é feita através da annotation @WebInitParam. A Listagem 4 mostra como definir um parâmetro chamado msg e acessá-lo a partir do código do servlet.
Sempre que uma mesma configuração for feita através de annotations e no arquivo web.xml, o que está definido no arquivo possui precedência.
Listagem 1. Implementando o servlet.
package servlet;
public class ProcessarServlet extends HttpServlet {
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

1 COMENTÁRIO
Jefferson Moreira Da Silva
É melhor colocar no web.xml o WebInitParam porque se voce publicar um servlet em um servidor web, tera a possibilidade de editar o web.xml para configurar conforme o perfil daquele ambiente. Se ficar dentro do servlet, que vira um .class ou .jar no servidor, nao adianta nada, continua dentro do codigo-fonte.
[há +1 ano] -
Responder
[Este post ainda não foi associado a uma sequência]
Você está em:
canal Java
Publicidade
Carlos Eduardo G. Tosin
Space do autor
Instrutor oficial dos cursos on-line de Java da Softblue. Formado em Ciência da Computação pela PUC-PR, pós-graduado em Desenvolvimento de Jogos para Computador pela Universidade Positivo e Mestre em Informática na área de Sistemas Distribuídos, também pela PUC...
Space do autor



1
0
