Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 02 - Introdução aos Servlets

Tecnologia de Servlets Java

Para gerarmos páginas dinâmicas no servidor de aplicações web, fazemos uso de componentes de software chamados Servlets. Você lembra o que são classes em Java? Aqueles módulos do programa que possuem atributos e métodos, os quais por sua vez descrevem respectivamente as características e comportamento (operações) comuns aos objetos dessa classe. Pois bem, os Servlets são nada mais que classes em Java que herdam código (atributos e métodos) direta ou indiretamente de uma classe especial chamada HttpServlet existente no pacote javax.servlet.http, como mostrado no exemplo da Listagem 1.

Nesta aula, você irá entender o funcionamento básico da programação de páginas web dinâmicas em Java, aquelas cujo conteúdo pode mudar a cada acesso. Pense no seguinte desafio: o que você pode precisar fazer para implementar uma calculadora na web com as operações básicas de soma, subtração, divisão e multiplicação? Você já sabe criar páginas HTML para representar a calculadora e certamente sabe o código Java que implementa essas operações aritméticas. Falta agora aprender a integração dessas coisas, e isso é o que você verá nesta aula.

Listagem 1 - Meu primeiro Servlet.

Atenção!

Caso esteja em dúvida sobre conceitos de orientação a objetos, como herança, polimorfismo e sobrescrita de método, aproveite para reler as aulas da disciplina de Programação Orientada a Objetos.

A classe ServletExemplo mostrada herda de HttpServlet e sobrescreve o método de nome doGet, cujos detalhes serão vistos mais adiante. O conteúdo da página resultante pela execução do Servlet é escrito através do objeto referenciado pela variável saida que é um objeto que representa o canal de comunicação do servidor para o cliente, sendo inicializada através do comando response.getWriter().

Em seguida utilizamos o método write(String msg) desse objeto de saída para escrever o conteúdo da página HTML a ser gerada. O parâmetro passado para esse método é uma String que vai formar o conteúdo da página, sendo, nesse caso, o texto "<HTML><BODY>Olá!</BODY></HTML>". Na verdade, você pode chamar o método write várias vezes dentro de um Servet, como veremos em outros exemplos.

Por fim, chamamos o método close() para fechar a conexão entre o cliente e o servidor. Nesse momento, o navegador web do usuário irá saber que todo o conteúdo da página já foi gerado e pode ser apresentado.

Atenção!

Os detalhes sobre os parâmetros request e response do método doGet serão apresentados na próxima aula.

Para visualizarmos o resultado da execução do ServletExemplo, primeiro precisamos informar ao servidor web que ServletExemplo é um Servlet e que ele pode ser executado pelos usuários da aplicação web. Em versões anteriores do Java Web, isso era feito alterando-se o arquivo web.xml, como mostrado na Listagem 2.

Veja um vídeo que mostra o processo de criação de um outro projeto de exemplo com um servlet ajudar a entender todo o processo.

Não é necessário alterar o aquivo web.xml no nosso caso. Esta configuração aplica-se apenas a versões anteriores do Java Web.

Listagem 2 - Indicação dos Servlets do sistema

Observe primeiro o marcador <servlet>, que vai da linha 12 à 17. Ele é utilizado para indicar a existência do ServletExemplo. O marcador <servlet-class> tem como objetivo informar ao servidor o nome completo da classe Java. Já o marcador <servlet-name> indica um apelido para o Servlet, no caso, está igual ao nome ServletExemplo. Este será então o nome usado em outras partes do arquivo web.xml. Por fim, os marcadores <description> e <display-name> são utilizados para fins de documentação.

Com relação ao marcador <servlet-mapping> (da linha 18 à 21), ele é utilizado para habilitar o ServletExemplo a ser executado via web por um usuário do sistema. Basicamente ele é o responsável pelo mapeamento de uma URL relativa ao Servlet. O marcador <servlet-name> indica o nome (apelido) do Servlet, que deverá ser o mesmo nome definido na tag <servlet-name> do marcador <servlet> (conforme as linhas 16 e 20 da Listagem 2), enquanto o marcador <url-pattern> indica a URL efetivamente a qual o Servlet está associado. No exemplo mostrado, o ServletExemplo está associado à URL relativa /ServletExemplo.

Porém, caso o seu sistema já esteja utilizando a versão 3.0 ou superior do Servlet, é adicionada a anotação @WebServlet que remove a necessidade de criação do mapeamento do servlet no web.xml. A anotação já define o webservlet e o mapeamento de acordo com o nome do arquivo java criado. Seu aplicativo estará configurado desta forma caso esteja seguindo o passo a passo desta aula.

Caso o nome de sua aplicação web no servidor seja ProgramacaoWeb e considerando que o servidor web está rodando na porta 8080, a URL para acessar esse Servlet é http://localhost:8080/ProgramacaoWeb/ServletExemplo.

Esse trabalho de configuração deve ser feito para todos os Servlets criados, o que pode ser um trabalho nada motivador quando for necessário criar dezenas de Servlets. Felizmente, ferramentas de desenvolvimento, como o Eclipse, realizam esse trabalho de configuração de forma automática. Para isso basta utilizar a opção New / Servlet do Eclipse ao invés de New / Class.

Dica

Utilize a opção New / Servlet do Eclipse ao invés de New / Class para criar novos Servlets. Assim, a configuração dos Servlets será feita automaticamente, seja através do web.xml ou da adição da anotação @WebServlet na classe criada.

Versão 5.3 - Todos os Direitos reservados