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:
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¶metro2=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¶metro2=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( request, response ); // 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 é.