Servlet
Servlet é um componente como um servidor, que gera dados HTML e XML para a camada de apresentação de um aplicativo Web. É basicamente uma classe na linguagem de programação Java que dinamicamente processa requisições e respostas, proporcionando dessa maneira novos recursos aos servidores. A definição mais usada considera-os extensões de servidores. Servlet é um módulo que estende a funcionalidade de um servidor Web, através de módulos de aplicação implementados em Java.
Índice |
[editar] Descrição
A Java Servlet API (no pacote javax.servlet) proporciona ao desenvolvedor a possibilidade de adicionar conteúdo dinâmico em um servidor web usando a plataforma Java.
Essa tecnologia disponibiliza ao programador da linguagem Java uma interface para o servidor web (ou servidor de aplicação), através de uma API. As aplicações baseadas no Servlet geram conteúdo dinâmico (normalmente HTML) e interagem com os clientes, utilizando o modelo request/response. Os servlets normalmente utilizam o protocolo HTTP, apesar de não serem restritos a ele.
Um Servlet necessita de um container Web para ser executado.
[editar] Hierarquia das classes Servlet
Toda classe Servlet é extensão direta ou indireta da classe GenericServlet, que trata dos métodos relacionados a uma Servlet genérica. A classe HttpServlet, por exemplo, estende Generic Servlet. Como é específica para o protocolo HTTP, métodos específicos são implementados, como os métodos doPost e doGet.
[editar] Exemplo da implementação de um Servlet Hello World
import java.io.IOException; import java.io.PrintWriter; //Bibliotecas da classe Servlet import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n" + "<html>\n" + "<head><title>Hello WWW</title></head>\n" + "<body>\n" + "<h1>Hello WWW</h1>\n" + "</body></html>"); } }