Qual a diferença entre doGet e doPost?

13 respostas
G

Qual a diferença entre doGet e doPost em uma Servlet, mais especificamente numa DispatcherServlet???

13 Respostas

M

antes de saber isso, vc tem q saber a diferença entre o GET e o POST do protocolo HTTP… direto da fonte: :slight_smile:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

R

Como assim em uma ‘DispatcherServlet’?
Os métodos doGet() e doPost da classe HTTPServlet, referem-se aos métodos GET e POST do protocolo HTTP.

Ex:

<form method="POST">

Chama o método doPost() do servlet.

<form method="GET">

Chama o método doGet() do servlet.

N

Tem haver com URL

No método doPost os parametros que são passados são encripitados
recomendado para uso de senhas
e no metodo doGet os parametros são visiveis na URL tipo:
http://www.portaljava.com.br/home/modules.jsp?name=[color=“darkblue”]Leonardo[/color]&Pass=123456

M

não não não… :roll:

E

quando vc usa o doget, ele coloca os dados q vc tem na propria url
como no exemplo do nado…

o dopost vc coloca os dados num corpo separado da url…

R

Mais especificamente, no cabeçalho HTTP

N

Foi mal :oops: :oops:

G

Pessoal, valeu mesmo pela ajuda!!!

G

Então com o doPost os parametros vao em outro corpo… mas que corpo é esse???

M

vamos a exemplos…

isto aqui é um GET, note q os parametros (a string de consulta) vão junto na URL, ou seja, eles são visiveis na barra de endereço do browser, logo, não é bom meter senhas e dados de formulário ai… e outra, esse buffer é limitado…

GET /exemplo/teste.jsp[color=“red”]?parametro1=foo&parametro2=bar HTTP/1.1[/color]
Host: www.portaljava.com
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4) Gecko/20030624 Netscape/7.1
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif,q=0.2,/;q=0.1
Accept-Language: en-us;en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: Keep-alive

<html>

</html>

e isso aqui é um POST, note q os parametros não vão junto a URL, e sim no “corpo” da mensagem, e seu tamanho é ilimitado… segundo os livros hehe, nunca tentei estourar…:

GET /exemplo/teste.jsp HTTP/1.1
Host: www.portaljava.com
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4) Gecko/20030624 Netscape/7.1
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif,q=0.2,/;q=0.1
Accept-Language: en-us;en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: Keep-alive
[color=“red”]parametro1=foo&parametro2=bar[/color]

<html>

</html>

G

Valeu!

E vc já ouviu algo de um tal de doFilter?

R

Na classe HttpServlet não existe este método, e nem no protocolo HTTP existe o método FILTER.

Ps:Estes métodos da classe HttpServlet referem-se aos protocolos HTTP: doPost() = POST, doGet() = GET, doDelete() = DELETE…etc

M
"Gleidstan":
Valeu!

E vc já ouviu algo de um tal de doFilter?

o doFilter() é um método da interface javax.servlet.Filter. Um Filter, assim com um servlet, tem seu proprio ciclo de vida e tal, e ele serve exatamente como um filtro, tu implementa filtros e os declara no web.xml, bem, vamos a um exemplo:

package foo;

import javax.servlet.*;
import javax.servlet.http.*;

public class MyFilter implements Filter &#123;

   private FilterConfig config;

   public void init&#40; FilterConfig config &#41; &#123;

      this.config = config;
   &#125;

   public void doFilter&#40; ServletRequest request, ServletResponse response, FilterChain chain &#41; throws ServletException, IOException &#123;

      // faz algum processamento, como filtrar os dados vindos do request

      chain.doFilter&#40; request, response &#41;; // passa para o servlet, 
                                                         // ou outro filtro
   &#125;

   public void destroy&#40;&#41; &#123;

  &#125;

&#125;

ai no DD tu pode colocar algo como:

&lt;filter&gt;
   &lt;filter-name&gt;myFilter&lt;/filter-name&gt;
   &lt;filter-class&gt;foo.MyFilter&lt;/filter-class&gt;
&lt;/filter&gt;

&lt;filter-mapping&gt;
   &lt;filter-name&gt;myFilter&lt;/filter-name&gt;
   &lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;
&lt;filter-mapping&gt;

bem... há mais sobre filtros.. mas espero ja ter dado uma idéia do q é.

Criado 17 de março de 2005
Ultima resposta 18 de mar. de 2005
Respostas 13
Participantes 5