Introdução ao Tomcat e Servlets

em 31/08/2002 , por Flávio Coutinho
Tutorial de Tomcat
Este tutorial tem por objetivo ensinar como instalar o Tomcat e rodar uma Servlet simples. Para isso é necessário que você já tenha instalado o jdk na máquina onde vai ser instalado o Tomcat e também que você tenha conhecimento básico de Java.
O que são Servlets? O que é Tomcat?
Servlets são modulos que ampliam a funcionalidade de servidores baseados em requisições/respostas. Web servers são o exemplo típico, para o qual são usado um tipo especializado de Servlets, os HttpServlets. Uma Servlet, por exemplo, pode receber dados em um form HTML por meio de uma requisição HTTP, processar os dados, atualizar a base de dados de uma empresa, e gerar alguma resposta dinamicamente para o cliente que fez a requisição. Ok, mas e o que que o Tomcat tem a ver com tudo isso? O Tomcat é um Servlet Container, ou seja, é um servidor onde são instaladas Servlets para tratar as requisições que o servidor receber. Existem muitos Containers, mas o Tomcat foi escolhido por ser gratuito e bastante popular. Podemos observar que Servlets são bastante semelhantes com CGI. Por que então usar Servlets? Porque servlets possuem as seguintes vantagens sobre CGI:
  • Servlets não rodam em um processo separado.
  • Servlets são mantidas na memória entre uma requisição e outra.
  • Há apenas uma instancia carregada de cada Servlet no container que serve todas as requisições para ela concorrentemente.
Fazendo o download
Você pegar o pacote de instalação do Tomcat no site http://jakarta.apache.org. Para pegar diretamente o pacote clique aqui. A versão que usaremos para o tutorial é a 4.0.4 que implementa a especificação 2.3 de Servlets.
Instalação
Feito o download é hora de instalar. A instalação é bastante simples, basta descompactar o arquivo zip em um diretotio qualquer, por exemplo c:\tomcat. Um diretório chamado jakarta-tomcat-4.0.4 será criado dentro do diretório onde foi instalado. Antes de prosseguir é interessante rodar o Tomcat para verificar se tudo ocorreu bem na instalação. Para iniciar o servidor vá ao diretório c:\tomcat\jakarta-tomcat-4.0.4\bin e execute o startup.bat. As seguintes mensagens devem aparecer ao iniciar o tomcat:

Após essas mensagens aparecerem o Tomcat já estará no ar e pronto para ser acessado. Para isso acesse pelo seu browser o endereço http://localhost:8080. Se a instalação foi bem sucedida uma página do Tomcat será exibida. Após esse teste você poder desligar o Tomcat, para isso basta executar shutdown.bat que se encontra no mesmo diretório do startup.bat. Agora que já temos o Tomcat instalado e funcionando é hora de fazer a primeira Servlet.
A HelloServlet
Você vai criar agora uma Servlet bastante simples. Ela, quando acessada, devolve uma página com a frase "HelloWorld!". Para fazer a sua própria Servlet, a primeira coisa é criar uma classe que extende a classe HttpServlet. Para isso, crie um arquivo (no diretório de sua preferência) chamado HelloServlet.java e escreva o código abaixo:

Na servlet temos o metodo doGet que é o metodo que recebe uma requisição HTTP e devolve uma resposta para o cliente. Podemos ver que esse metodo recebe dois objetos: request e response. O request contem informações sobre a requisição, como por exemplo variáveis de forms HTML. O response é o objeto através do qual enviamos a resposta para o nosso cliente. Vamos ver agora a implementação do metodo doGet:

Pronto! Já temos o código de uma Servlet bastante simples. O próximo passo agora é compilar e instalar a Servlet no Tomcat.
Compilando e instalando a Servlet
Se você já estiver familiarizado com a compilação de programas Java não há muito segredo na hora de compilar. Basta executar:

Observe que incluímos no classpath um arquivo jar que é o arquivo que contem as classes dos pacotes javax.servlet.* e javax.servlet.HttpServlet.*. Tendo a Servlet compilada é hora de instalar a Servlet no Tomcat. O processo de instalação da Servlet no servidore é também conhecido como deploy. Antes, de continuar, observe o diretório c:\tomcat\jakarta-tomcat-4.0.4. Veja que existe um diretório chamado webapps. Dentro desse diretório existe alguns subdiretórios e cada um destes subdiretórios correspondem a uma aplicação web, que pode ser um conjunto de páginas web e Servlets que fornecem algum tipo de funcionalidade. No exemplo deste tutorial temos uma aplicação web composta por uma única Servlet, a HelloServlet. O diretório webapps é configurado por meio do arquivo server.xml que fica localizado no diretório c:\tomcat\jakarta-tomcat-4.0.4\conf. Editando esse arquivo poderiamos especificar outro diretório para fazer o deploy da nossa aplicação, mas para simplificar vamos fazer o deploy no diretório webapps mesmo. O Primeiro passo para a instalação da servlet é a criação de um novo subdiretório no diretório webapps. Por exemplo HelloServletApp. Dentro de HelloServletApp, você precisa criar outro subdiretório chamado WEB-INF. Dentro desse dirétorio crie um arquivo chamado web.xml (deixe vazio por enquanto o arquivo) e um outro diretório (calma que esse é o último diretório que você vai precisar criar) chamado classes. O arquivo web.xml é um arquivo de configuração da nossa aplicação web. Esse arquivo, entre outras coisas, informa ao Tomcat quais as servlets que compoem nossa aplicação web, no caso a nossa HelloServlet. O subdiretório classes é aonde devem ficar as servlets compiladas e outras classes Java que a aplicação eventualmente use. Copie para ele o arquivo HelloServlet.class que você compilou. Agora falta apenas editar o arquivo web.xml para que o deploy esteja completo. Copie o conteúdo abaixo para o arquivo web.xml:

Editado o web.xml, nossa aplicação está estará instalada, pronta para ser executada! Basta agora iniciar novamente o Tomcat (caso ele ainda esteja no ar, desligue-o e inicie-o novamente), e acessar a Servlet por uma destas urls:

Note que a url para acessar a Servlet é formada da seguinte maneira:

Se tudo der certo, deverá aparecer na janela do seu browser a frase "Hello World!". Com isso chegamos ao final deste tutorial, cujo objetivo era dar uma visão geral sobre a instalação do Tomcat e a criação de uma Servlet simples.
Considerações Finais
É importante observar que a nossa HelloServlet é muito simples, e possui um conteúdo estático, por isso não representa o que realmente podemos fazer com Servlets. Fazendo um uso mais avançado de Servlets, podemos criar páginas dinâmicas onde as Servlets fazem acesso a bancos de dados, outras classes Java ou EJBs (Enterprise Java Beans - um tipo de componente Java mais avançado), além de poder receber paremetros de entrada via forms HTML.