Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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;
/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.
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.
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>
<Context path="/hello" docBase="/HelloWorldInServlet/deploy" debug="0" reloadable="true"/>
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.