Qual a diferença entre doGet e doPost?

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

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

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.

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

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

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…

Mais especificamente, no cabeçalho HTTP

Foi mal :oops: :oops:

Pessoal, valeu mesmo pela ajuda!!!

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

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>

Valeu!

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

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

[quote=“Gleidstan”]Valeu!

E vc já ouviu algo de um tal de doFilter?[/quote]

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:

[code]package foo;

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

public class MyFilter implements Filter {

private FilterConfig config;

public void init( FilterConfig config ) {

  this.config = config;

}

public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain ) throws ServletException, IOException {

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

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

}

public void destroy() {

}

}[/code]

ai no DD tu pode colocar algo como:

[code]<filter>
<filter-name>myFilter</filter-name>
<filter-class>foo.MyFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<filter-mapping>[/code]

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