Artigo Java Magazine 18 - Aplicações Web com Tomcat 5

O suporte a JSP 2.0 é um dos principais atrativos do novo release do Tomcat. Aprenda os fundamentos e os novos recursos através de exemplos.

Esse artigo faz parte da revista Java Magazine edição 18. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler este artigo em PDF

Aplicações Web com Tomcat 5

Primeiros passos no desenvolvimento JSP

O suporte a JSP 2.0 é um dos principais atrativos do novo release do Tomcat. Aprenda os fundamentos e os novos recursos através de exemplos

O desenvolvimento de aplicações web em Java pode parecer complicado à primeira vista. São muitas tecnologias e padrões: Servlets, JSP, JSTL, Struts, JSF, Taglibs, MVC... Na verdade, esta diversidade de opções reflete a maturidade da plataforma Java e o simples fato de não existir uma única solução universal para todos os tipos de aplicações.

O núcleo de tudo são as especificações de Servlets e JSP (JavaServer Pages), que foram atualizadas recentemente para as versões 2.4 e 2.0, respectivamente (veja o artigo sobre Servlets nesta edição). O Tomcat 5.0 é a implementação de referência para estas especificações. Para o desenvolvedor experiente, as versões novas são uma oportunidade de experimentar novas maneiras de desenvolver aplicações; para o desenvolvedor iniciante, é a chance de aprender boas práticas sem vícios e limitações do passado.

Tradicionalmente, livros e cursos sobre desenvolvimento web em Java seguem uma ordem “cronológica”, apresentando as várias tecnologias na ordem em que foram incorporadas à plataforma. Inicia-se pela API de Servlets e daí segue-se para páginas JSP e depois bibliotecas de tags. Entretanto, pode ser mais fácil seguir o caminho inverso, aprendendo primeiro tecnologias mais novas, como o JSP 2.0 e o JSTL, tornando-se apto a criar aplicações simples rapidamente – e só mais tarde aprender as tecnologias de base, como Servlets, adquirindo com isso conhecimento para criar arquiteturas mais sofisticadas.

Neste artigo o leitor será apresentado ao Tomcat 5, aprendendo o suficiente sobre sua instalação e configuração para construir um ambiente de trabalho, e ao JSP 2.0, aprendendo como construir páginas dinâmicas simples baseadas na plataforma Java.

Não esperamos familiaridade prévia com o assunto, mas apenas conhecimentos básicos de Java e de HTML. Esta é a primeira parte de uma série de três artigos. A segunda parte irá apresentar o JSTL e a terceira, o modelo MVC aplicado ao desenvolvimento de aplicações web com Java, tudo com enfoque muito prático, baseado em exemplos.

 

Glossário do Java para web

Servlets são classes Java escritas especialmente para rodar dentro de um servidor internet (assim como Applets são classes escritas para rodar dentro de navegadores web). Como tal, não são aplicações autônomas, mas sim extensões de aplicações para servidores web, servidores SMTP (e-mail) e outros.

HttpServlets são Servlets escritos para responder a requisições do protocolo HTTP, o que na maior parte dos casos significa retornar um documento HTML (mas poderia ser qualquer tipo de conteúdo reconhecido pelo navegador, por exemplo imagens PNG, animações Flash, documentos PDF etc). Pode-se pensar em HttpServlets como CGIs melhorados e específicos para Java.

JSP – JavaServer Pages, basicamente são páginas HTML que contém marcadores especiais, dentro dos quais é inserido código Java. O código Java é executado no servidor web e o resultado é incorporado ao HTML. Assim o navegador recebe apenas um documento HTML padrão, sem tomar conhecimento do código Java que estava ali (veja também SSS).

CGI – Common Gateway Interface é uma especificação que permite a um programa escrito em uma linguagem de programação qualquer responder a requisições HTTP encaminhadas por um servidor web. Apesar de ser independente de linguagem, de servidor web e de sistema operacional, o CGI tem problemas sérios de performance e escalabilidade.

SSI – Server-Side Includes é um recurso simples de macro-substituição presente em alguns servidores web, que permite modificar dinamicamente uma página HTML pela inclusão de um cabeçalho padronizado, ou fazer a inserção de texto dinâmico como a data atual.

SSS – Server-Side Scripting é a evolução do SSI para oferecer recursos mais completos de programação. Páginas JSP são uma das várias tecnologias de SSS populares hoje no mercado, assim como PHP, ASP e Cold Fusion.

JSTL – JSP Standard Tag Library é uma biblioteca padronizada que fornece tags prontas para loops, decisões, formatação de texto e outras atividades comuns, de modo que o desenvolvedor não precise criar suas próprias tags com essa finalidade.

EL – Expression Language, uma sintaxe simplificada para acesso a objetos Java e seus atributos dentro de páginas JSP. Originalmente a EL era reconhecida apenas por atributos de tags JSTL, mas no JSP 2.0, passou a ser válida em qualquer local da página, mesmo que não seja utilizada a JSTL.

JSF – JavaServer Faces, biblioteca de tags e API que facilita a interação com elementos de formulários HTML e a navegação entre as páginas da aplicação seguindo o modelo MVC.

Struts é o mais popular dos frameworks para construção de aplicações web em Java baseadas no modelo MVC. Fornece um Servlet controlador para a aplicação e vários taglibs para auxiliar na construção das páginas JSP que cumprem o papel de Visualização (o "V" do MVC). Os taglibs do Struts tentem a serem depreciados em favor do JSTL e JSF.

MVC – Model-View-Controller é um padrão pelo qual os componentes de uma aplicação são classificados como componentes de Modelo, Visualização e Controle. Componentes de Modelo cuidam do armazenamento e recuperação de informações e do processamento de regras de negócios; componentes de Visualização se limitam a exibir informações segundo um formato ou layout predefinido; e componentes de Controle cuidam de interpretar ações do usuário (como cliques) e de chamar os componentes de Modelo ou Visualização que devem responder a essas ações.

Taglib – tag library, biblioteca de tags, é uma extensão do JSP pela qual classes Java podem ser referenciadas como tags dentro de uma página JSP, efetivamente permitindo ao desenvolvedor criar suas próprias tags. JSTL é o conjunto de taglibs padrão da plataforma Java. O JSF também fornece taglibs.

O que é o Tomcat

O Tomcat é um servidor capaz de suportar o desenvolvimento e a execução, em ambiente de produção, de aplicações web desenvolvidas segundo os padrões da plataforma Java. Ele não busca ser um servidor J2EE completo – não implementa recursos como o suporte a EJBs – mas busca ser um ambiente completo para aplicações web em Java.

O coração do Tomcat é o componente conhecido como Catalina, que é um container web. Tem como função fornecer a infra-estrutura para o gerenciamento e execução de Servlets. O funcionamento de um container web é definido pela especificação de Servlets, de modo que Servlets que funcionem no Tomcat devem funcionar com outros servidores que também fornecem containers web, como o JRun ou o WebLogic.

O segundo componente importante do Tomcat é o Jasper, um compilador de JSP. Ele transforma páginas JSP em Servlets equivalentes e compila estes servlets para bytecode Java, resultando em uma velocidade de execução (para acessos repetidos) bem superior a outras tecnologias similares, como PHP ou ASP.

O terceiro componente são os conectores. Eles determinam o protocolo cliente/servidor utilizado para acesso ao Tomcat. A configuração padrão ativa o conector " [...] continue lendo...

Artigos relacionados