Fundamentos de Servlets

Neste artigo apresentaremos duas tecnologias da plataforma JEE a tecnologia Servlets/JSP, e mostraremos algumas características que a tornam tão atraente para o desenvolvimento de aplicações WEB.

Introdução a Servlets

Algum tempo atrás a Internet era composta principalmente de páginas estáticas com conteúdo institucional, hoje ela oferece uma infinidade de aplicações com conteúdo dinâmico e personalizado. Neste artigo apresentaremos duas tecnologias da plataforma JEE a tecnologia Servlets/JSP, e mostraremos algumas características que a tornam tão atraente para o desenvolvimento de aplicações WEB.

A utilização de Servlets e de páginas JSP oferecem diversas vantagens em relação ao uso de outras tecnologias (como PHP, ASP e CGI). As principais vantagens são herdadas da própria linguagem Java, como:

Além dessas vantagens, a arquitetura de Servlets e páginas JSP possibilitam alguns benefícios adicionais, como:

O que são Servlets?

Servlets são classes Java, desenvolvidas de acordo com uma estrutura bem definida que quando instaladas e configuradas em um Servidor que implemente um Servlet Container, podem tratar requisições recebidas de clientes Web, como por exemplo os Browsers (Internet Explorer® e Mozilla Firefox®).

Ao receber uma requisição, um Servlet pode capturar os parâmetros desta requisição, efetuar qualquer processamento inerente a uma classe Java, e devolver uma página HTML. A listagem abaixo, retorna uma página para o cliente WEB, com o endereço IP do servidor, a Listagem 2, mostra o código HTML gerado pelo Servlet da Listagem 1 e a Figura 1 mostra a página carregada no cliente WEB.

package org.computer.br; import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; public class EnderecoIpRemoto extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet EnderecoIpRemoto</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Endereco ip Remoto:" + request.getRemoteAddr() + "</h1>"); out.println("</body>"); out.println("</html>"); out.close(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } public String getServletInfo() { return "Short description"; } }
Listagem 1: Exemplo de um Servlet java.
<html> <head> <title>Servlet EnderecoIpRemoto</title> </head> <body> <h1>Endereco ip Remoto:127.0.0.1</h1> </body> </html>
Listagem 2: Código HTML gerado pela Listagem 1.
Figura 1: Página gerada pelo Servlet e carregada no cliente WEB.

O que são páginas JSP?

As páginas JSP, ou Java Server Pages, foram criadas para contornar algumas das limitações no desenvolvimento com Servlets: se em um Servlet a formatação da página HTML resultante do processamento de uma requisição se mistura com a lógica da aplicação em si, dificultando a alteração dessa formatação, em uma página JSP essa formatação se encontra separada da programação, podendo ser modificada sem afetar o restante da aplicação.

Assim, um JSP consiste de uma página HTML com alguns elementos especiais, que conferem o caráter dinâmico da página. Esses elementos podem tanto realizar um processamento por si, como podem recuperar o resultado do processamento realizado em um Servlet, por exemplo, e apresentar esse conteúdo dinâmico junto à página JSP.

Existe também um recurso adicional bastante interessante na utilização de páginas JSP: a recompilação automática, que permite que alterações feitas no código da página sejam automaticamente visíveis em sua apresentação. Assim, não é necessário interromper o funcionamento da aplicação para incorporar uma modificação de layout, por exemplo. A listagem abaixo, retorna uma página para o cliente WEB, com o endereço IP do servidor, a Listagem 4, mostra o código HTML gerado pelo JSP da Listagem 3 e a Figura 2 mostra a página carregada no cliente WEB.

<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>O seu endereço ip: <%= request.getRemoteAddr() %></h1> </body> </html>
Listagem 3: Exemplo de um JSP.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>O seu endereço ip: 127.0.0.1</h1> </body> </html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>O seu endereço ip: <%= request.getRemoteAddr() %></h1> </body> </html>
Listagem 4: Código HTML gerado pela Listagem 3.
Figura 2: Página gerada pelo JSP e carregada no cliente WEB.

Confira também

Artigos relacionados