Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Olá pessoal!
Percebi que existem alguns artigos que falam sobre o básico para aplicações web, mas
nenhum fala sobre um básico de Servlet!
O objetivo deste artigo é exatamente isto, fazer um HelloWorld em Servlet!
Para realizar os testes, eu estou com jsdk 1.4.2 e o TomCat 4.1.29 e parto do
princípio de que o leitor já os tenha instalados.
Nota: para poder compilar as classes você precisa que o pacote do Servlet esteja em seu
classpath. Este pacote se encontra em TOMCAT_HOME/common/lib/servlet.jar
Vamos lá!
Primeiramente, crie um diretório onde estarão os arquivos de sua aplicação, por ex:
/HelloWorldInServlet;
Dentro deste diretório cire um subdiretório chamado source e outro deploy;
Dentro do diretório deploy cire um subdiretório chamado WEB-INF, e dentro do WEB-INF crie um
outro chamado classes;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* O método padrão invocado em um servlet é doGet.
* A especificação 2.3 de servlet (que é a que estou trabalhando) implementa
* os 7 métodos do HTTP 1.1 (get, head, post, options, put, delete, trace).
* Os métodos mais comumente utilizados em aplicações web são get e post.
*/
public class HelloWorld 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 {
PrintWriter pw = response.getWriter(); // pega o 'escritor' da resposta
pw.println("<HTML>");
pw.println("<TITLE>Olá Mundo em Servlet!</TITLE>");
pw.println("<BODY>");
pw.println("Olá Web!");
pw.println("</BODY>");
pw.println("</HTML>");
pw.flush(); // descarrega as informações. não é obrigatória a chamda deste método
}
}
Pronto! Feito isso o servlet está acabado, agora falta o deployment descriptor...
Vamos ao mesmo:
Code:
<?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>
<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>
Este tava bem simples... mais que simples... podemos fazer agora um exemplo com entrada de
dados!
Uma calculadora... dois campos na tela + um botão; o servlet soma e traz o resultado.
Tá bom, tá bom... não chega a ser uma calculadora... mas 1+1 ela faz!
Ao invés de recriar a estrutura descrita acima, somente criaremos a outra servlet.
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Neste servlet, o método GET chama o método que 'desenha' o formulário para o
* usuário preencher. O formulário está chamando o método POST, o qual desenha o
* formulário novamente com os valores informados e dá uma resposta ao usuário;
*/
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;
}
Code:
<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>
Salve o arquivo. Reinicie a aplicação pelo manager do tomcat ou reinicie o próprio tomcat.
Pronto! Estará calculando!
Este artigo apresentou apenas o básico do básico! Há muito mais o que estudar e fazer!
valeu
té+