O protocolo HTTP define oito métodos (GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS e CONNECT) que indicam a ação a ser realizada no recurso especificado. o método determina o que o servidor deve fazer com a URL fornecida no momento da requisição de um recurso. A classe HTTPServlet Fornece uma classe abstrata para ser uma subclasse de um servlet HTTP adequados a um website. A subclasse de HTTPServlet deve substituir pelo menos um método, normalmente um deles é doGet, se o servlet suporta solicitações HTTP GET ou doPost, para solicitações HTTP POST ou os outros método suportados pela classe HTTPServlet.
HTTPServlet: http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServlet.html
Basicamente você utiliza o método doGet sempre que a requisição que você faz não altere o estado do servidor, como uma consulta, uma busca e etc. O método doPost envia dados para serem processados (por exemplo, dados de um formulário HTML) para o recurso especificado. Os dados são incluídos no corpo do comando.
Utilizando os métodos doGet e doPost
1 – Crie uma aplicação do tipo Dynamic Web Project e chame seu projeto de DaServlet001, crie um novo Servlet chamado MeuServlet, você pode deixar que ele herde os métodos padrões do Wizard da IDE Eclipse que são o doGet e o doPost, copie o programa abaixo e rode sua aplicação:
2 – Como você pode ver nós criamos uma pagina html através do método doGet, ele é automaticamente disparado assim que o servidor processa a url da nossa aplicação :
3 – Porem, o método doGet é utilizado para passar informações do navegador para o servidor, isto significa que vamos efetuar uma requisição Client-Server, vamos passar um parâmetro através do nosso browser para que o valor seja processado no servidor de aplicação Java, vamos fazer isto de um modo manual. O método para se passar parâmetros para o servidor é utilizando o caractere de “?” (interrogação) seguido sem espaço pelo nome do parâmetro adicionado do sinal de “=” (igual) e o valor desejado, caso haja mais que um parâmetros separe-os como o caractere “&” (E comercial ou Ampersand). Coloque a seguinte url e digite a tecla enter, mas atente-se a porta correta do seu servidor Tomcat:
http://localhost:9080/DAServlet001/MeuServlet?Parametro1=Meu parametro de teste
Assim que o Servlet executar o método doGet novamente ele vai automaticamente identificar o parâmetro utilizando na requisição GET e imprimir uma linha na pagina HTML.
4 – O método doPost é disparado quando você clica no botão do formulário html e a ação solicita uma requisição ao Servlet, o nosso método apenas imprime uma linha no navegador:
Exemplo:
Neste exemplo nos criamos uma aplicação web dinâmica e um Servlet e utilizamos os métodos doGet e doPost da classe HTTPServlet. Utilizamos também a manipulação simples de um parâmetro para a requisição doGET.
Java
package org.desenvolvimento.aberto;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MeuServlet
*
* Classe do Servlet
*/
@WebServlet("/MeuServlet")
public class MeuServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*
* Construtor do Servlet
*/
public MeuServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*
* Método GET
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String meuHtml = "<html xmlns=\"http://www.w3.org/1999/xhtml\">" +
"<head><title>Desenvolvimento Aberto</title></head>" +
"<body>" +
"<h1>Desenvolvimento Aberto</h1> <br />" +
"<h3>Java - Servlet - doGet</h3>" +
"Pagina criada pelo metodo do Servlet <br />" +
// Para que o método post seja disparado
// o form precisa saber o método - method="post"
// também funciona com o metodo get
"<form action=\"MeuServlet\" method=\"post\"> <br />" +
"<input type=\"submit\" value=\"Enviar\">" +
"</form>" +
"</body>" +
"</html>";
PrintWriter imprimir = response.getWriter();
imprimir.println(meuHtml);
// Recupera Parametros da URL
String parametro = request.getParameter("Parametro1");
if (parametro != null )
{
imprimir.println("O parametro digitado foi: " + parametro);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*
* Método POST
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter imprimir = response.getWriter();
imprimir.println("Método POST foi disparado!");
}
}





