Resumão Servlets em Java

Java Servlet roda em um servidor de aplicação que fica instalado no servidor.

O nome “servlet” vem do inglês e dá uma ideia de pequeno servidor cujo objetivo basicamente é receber requisições HTTP, processá-las e responder ao cliente, essa resposta pode ser um HTML, uma imagem etc.

Em Java, procuramos sempre trabalhar orientado a objeto, portanto essa nosso servlet será também um objeto de uma classe Java.

O funcionamento se dá da seguinte forma:

  1. Cliente (navegador) faz uma requisição HTTP ao servidor.
  2. O servlet responsável trata a requisição e responde ao cliente de acordo.
  3. O cliente recebe os dados e exibe.

Listagem 01: Estrutura básica de um servlet.

public class OlaMundo extends HttpServlet {
protected void service (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// tratamentos
}
}

Para mapearmos, usaremos as tags <servlet> e <servlert-mapping>.

Listagem 02: Mapeamento do servlet

<servlet>
<servlet-name>olaServlet</servlet-name>
<servlet-class>br.servlets.OlaMundo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>olaServlet</servlet-name>
<url-pattern>/olaMundo</url-pattern>
</servlet-mapping>

Vejamos como fica a estrutura de diretórios gerada.

  • src – código fonte Java (.java)
  • build – onde o Eclipse compila as classes (.class)
  • WebContent – content directory (páginas, imagens, css etc vão aqui)
  • WebContent/WEB-INF/ – pasta oculta com configurações e recursos do projeto
  • WebContent/WEB-INF/lib/ – bibliotecas .jar.
  • WebContent/WEB-INF/classes/ – arquivos compilados são copiados para cá.

A pasta META-INF é opcional, mas é gerada pelo Eclipse. É onde fica o Arquivo de manifesto como usado em arquivos .jar.

Agora, dentro de src, criaremos a classe br.servlets.OlaMundo.java com o seguinte conteúdo:

Listagem 03: Montando o servlet para o hello world

Public class OlaMundo extends HttpServlet {
protected void service (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("Hello World");
out.println("</body>");
out.println("</html>");
}
}

O JavaEE trabalha sobre o conceito de contextos Web para os diferentes sites e projetos no mesmo servidor. Por padrão o Eclipse gera o context name com o mesmo nome do projeto, no nosso caso primeiroServlet, por isso nosso servlet’s fica acessível por localhost:8080/primeiroServlet, mas podemos alterar indo em Project > Properties > Web Project Settings e mudando o Context Root.

Albany Timbó Mesquita

Bacharel em Ciencia da Computação Área de estudo Tecnologias da Informação