Servlets - exemplos

Servlets são classes Java que atendem a solicitações HTTP e implementam o javax.servlet.Servletinterface. Os desenvolvedores de aplicativos da Web normalmente escrevem servlets que estendem javax.servlet.http.HttpServlet, uma classe abstrata que implementa a interface Servlet e é especialmente projetada para lidar com solicitações HTTP.

Código de amostra

A seguir está a estrutura de código-fonte de amostra de um exemplo de servlet para mostrar Hello World -

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld extends HttpServlet {
 
   private String message;

   public void init() throws ServletException {
      // Do required initialization
      message = "Hello World";
   }

   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");

      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
   }

   public void destroy() {
      // do nothing.
   }
}

Compilando um Servlet

Vamos criar um arquivo com o nome HelloWorld.java com o código mostrado acima. Coloque este arquivo em C: \ ServletDevel (no Windows) ou em / usr / ServletDevel (no Unix). Este local de caminho deve ser adicionado a CLASSPATH antes de prosseguir.

Supondo que seu ambiente esteja configurado corretamente, entre ServletDevel diretório e compilar HelloWorld.java da seguinte maneira -

$ javac HelloWorld.java

Se o servlet depende de qualquer outra biblioteca, você deve incluir esses arquivos JAR em seu CLASSPATH também. Incluí apenas o arquivo JAR servlet-api.jar porque não estou usando nenhuma outra biblioteca no programa Hello World.

Esta linha de comando usa o compilador javac integrado que vem com o Sun Microsystems Java Software Development Kit (JDK). Para que esse comando funcione corretamente, você deve incluir a localização do Java SDK que está usando na variável de ambiente PATH.

Se tudo correr bem, a compilação acima produzirá HelloWorld.classarquivo no mesmo diretório. A próxima seção explicaria como um servlet compilado seria implantado na produção.

Implementação de servlet

Por padrão, um aplicativo servlet está localizado no caminho <Tomcat-installationdirectory> / webapps / ROOT e o arquivo de classe deve residir em <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes.

Se você tiver um nome de classe totalmente qualificado de com.myorg.MyServlet, essa classe de servlet deve estar localizada em WEB-INF / classes / com / myorg / MyServlet.class.

Por enquanto, vamos copiar HelloWorld.class em <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes e criar as seguintes entradas em web.xml arquivo localizado em <Tomcat-installation-directory> / webapps / ROOT / WEB-INF /

<servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>HelloWorld</servlet-name>
   <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

As entradas acima devem ser criadas dentro das tags <web-app> ... </web-app> disponíveis no arquivo web.xml. Pode haver várias entradas nesta tabela já disponíveis, mas não importa.

Você está quase terminando, agora vamos iniciar o servidor tomcat usando <Tomcat-installationdirectory> \ bin \ startup.bat (no Windows) ou <Tomcat-installationdirectory> /bin/startup.sh (no Linux / Solaris etc.) e finalmente digite http://localhost:8080/HelloWorldna caixa de endereço do navegador. Se tudo correr bem, você obterá o seguinte resultado