Você está na página 1de 4

TUTORIAL WEB SERVICE NO SERVIDOR

Começar criando a estrutura do diretório da aplicação, a classe do Servlet, o deployment descriptor e por último a
configuração do contexto.

1° Passo

Criar um diretório onde estarão os arquivos da aplicação, um ex: /HelloWorldInServlet;

2° Passo
Dentro deste diretório criar dois subdiretórios chamados source e outro deploy;

3° Passo
Dentro do diretório deploy criar um subdiretório chamado WEB-INF, e dentro do WEB-INF criar um outro chamado
classes;

A estrutura deve ficar assim:

/HelloWorldInServlet
|-source
|-deploy
| |-WEB_INF
| | |-classes

4° Passo
Entrar em /HelloWorldInServlet/source e criar um arquivo Calc.java;

Neste servlet, o método GET chama o método que 'desenha' o formulário para o usuário preencher.O formulário es
tá chamando o método POST, o qual desenha o formulário novamente com os
valores informados e dá uma resposta ao usuário.
Após escrito o arquivo, salva-lo e compila-lo.

Neste arquivo terá o seguinte código:

import java.io.IOException;  
import java.io.PrintWriter;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
public class Calc extends HttpServlet {  
   /** 
    * É executado quando é feita uma requisição com método GET pelo cliente. 
    *  
    * @param request Objeto com as informações pertinentes a requisição 
    * @param response Objeto com as informações pertinentes a reposta para o cliente 
    */  
   protected void doGet(HttpServletRequest request, HttpServletResponse response)  
         throws ServletException, IOException {  
      writeHeader(response);  
      writeForm(request, response);  
      writeFooter(response);  
   }  
     
   /** 
    * É executado quando é feita uma requisição com método POST pelo cliente. 
    * No nosso caso será executado quando o cliente submitar o formulário, o qual 
    * está indicado com METHOD="POST" 
    * @param request Objeto com as informações pertinentes a requisição 
    * @param response Objeto com as informações pertinentes a reposta para o cliente 
    */  
   protected void doPost(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
      writeHeader(response);  
      writeForm(request, response);  
      PrintWriter pw = response.getWriter();  
      pw.println("<BR>");  
        
// o getParameter retorna o valor informado para o parâmetro no formulário, ou passado diretamente pela URL 
// neste caso, o parâmetro é o FIRSTVALUE 
    
  String first = request.getParameter("FIRSTVALUE");  
      int vlr1 = 0;  
      try {  
         vlr1 = Integer.parseInt(first);  
      } catch (Exception e) {  
         pw.println("Não foi possível converter o 1º valor para inteiro!");  
         writeFooter(response);  
         return;  
      }  
  
    String second = request.getParameter("SECONDVALUE");  
      int vlr2 = 0;  
      try {  
         vlr2 = Integer.parseInt(second);  
      } catch (Exception e) {  
         pw.println("Não foi possível converter o 2º valor para inteiro!");  
         writeFooter(response);  
         return;  
      }  
        
      pw.println("O resultado da soma é: " +(vlr1 +vlr2));  
      writeFooter(response);  
   }  
     
   private final void writeHeader(HttpServletResponse response) throws IOException {  
      response.getWriter().println("<HTML><TITLE>Calculadora</TITLE><BODY>");  
   }  
   private final void writeFooter(HttpServletResponse response) throws IOException {  
      response.getWriter().println("</BODY></HTML>");  
   }  
     
   /** 
    * 'Desenha' o formulário para o usuário preencher; 
    * Seta ação que será chamada para este mesmo servlet (ACTION="calc"); 
    * Seta o método para post (METHOD="POST");  
    */  
   
private final void writeForm(HttpServletRequest request, HttpServletResponse response)  
   throws IOException {  
      String first = request.getParameter("FIRSTVALUE");  
      String second = request.getParameter("SECONDVALUE");  
        
      PrintWriter pw = response.getWriter();  
      pw.println("<FORM ACTION=\"calc\" METHOD=\"POST\">");  
      pw.println("<INPUT TYPE=\"TEXT\" NAME=\"FIRSTVALUE\" VALUE=\"" +((first != null) ? first : "") +"\"/>");  
      pw.println(" + ");  
      pw.println("<INPUT TYPE=\"TEXT\" NAME=\"SECONDVALUE\" VALUE=\"" +((second != null) ? second : "") +"\"/>");  
      pw.println("<INPUT TYPE=\"SUBMIT\" VALUE=\"SOMAR\"/>");  
      pw.println("</FORM>");  
   }  
}  
Obs. Os objetos devem estar dentro do diretório WEB-INF/classes.
Os pacotes ficam em WEB-INF/lib.
Feito isso o servlet está acabado.

Agora falta o deployment descriptor

5° Passo
Entrar no diretório /HelloWorldInServlet/WEB-INF e criar um arquivo com o nome web.xml;

<?xml version="1.0" encoding="ISO-8859-1"?>  
  
<!DOCTYPE web-app  
 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
 "http://java.sun.com/dtd/web-app_2_3.dtd">  
  
<web-app>  
  
 <display-name>Olá Mundo em Servlet!</display-name>  
 <description></description>  
  
 <servlet>  
 <servlet-name>hello</servlet-name> <!-- nome do servlet dentro do web.xml -->  
 <servlet-class>HelloWorld</servlet-class> <!-- nome da classe do servlet -->  
 </servlet>  
  
 <servlet-mapping>  
 <servlet-name>hello</servlet-name> <!-- servlet a ser mapeado -->  
 <url-pattern>/servlet/hello</url-pattern> <!-- url que está mapeada para o servlet responder -->  
 </servlet-mapping>  
  
</web-app>  

Salvar o arquivo e feche o editor.

Agora a configuração do contexto para o TomCat.

Editar o arquivo TOMCAT_HOME/conf/server.xml.


Acrescentar a seguinte tag ao arquivo:
Esta tag deve estar dentro de que já devem estar previamente declaradas em seu server.xml

<Context path="/hello" docBase="/HelloWorldInServlet/deploy" debug="0" reloadable="true"/>  

Substituir o /HelloWorldInServlet pelo diretório criado

Reiniciar o TomCat.

Adicione uma declaração da nova servlet no web.xml logo abaixo da declaração da primeira e o mapeamento do
novo logo abaixo do mapeamento da primeira.

<servlet>  
...  
</servlet>  
  
<servlet>  
<servlet-name>calc</servlet-name>  
<servlet-class>Calc</servlet-class>  
</servlet>  
  
<servlet-mapping>  
...  
</servlet-mapping>  
  
<servlet-mapping>  
<servlet-name>calc</servlet-name>  
<url-pattern>/servlet/calc</url-pattern>  
</servlet-mapping>  

Salvar o arquivo. Reinicie a aplicação pelo manager do tomcat ou reiniciar o próprio tomcat e estará finalizado.

Você também pode gostar