Andei buscando na internet e em livros e não obtive exito.
Gostaria de saber quais as diferenças de se utilizar o método doPost() e o service() .
Usando o service() consigo pegar os dados sem problemas que vem do formulário .
Com o doPost() consigo também, alêm lógico creio eu ser um pouco mais dificil porque preciso declarar o doGet() e dentro dele chamar o doPost().
Concluido:
Todo artigo e livros indicam as boas práticas de programação com servlets diz que devemos
implementar sempre o método service e não um dos métodos como doGet, doPost, doHeader etc.
Seguindo esse raciocinio… então deveriamos sempre usar o service() para “começar” a Action em questão e depois da ai trabalhar com os outros métodos…
doPost(),doHeader() e doGet(). Então como trabalhariamos?, exemplos?!? rs.
Fiz um teste simples colocando “todos os htmls” no service() como formulários e etc… e gostaria que quando “submitasse” fosse para o
doPost() . Essa seria a forma correta?, se sim…, não funcionou com migo.
Abraços, e obrigado aos amigos por qualquer ajuda.
[quote=javaman00]1) - Todo artigo e livros indicam as boas práticas de programação com servlets diz que devemos
implementar sempre o método service e não um dos métodos como doGet, doPost, doHeader etc.
[/quote]
Hum, sempre achava que era ao contrário. É que a implementação default de service chama doGet, doPost etc. conforme o tipo do request http. Então se você vai implementar service, tem de fazer TUDO que ele fazia, senão não chama direito doHead etc.
Sempre achei que você tinha de implementar doPost e/ou doGet, e ambos chamarem uma terceira rotina, que é a que efetivamente processa seus dados.
Se você der uma olhadinha no fonte de HttpServlet (olhar o fonte não dói - ou será que dói? ) você vai ver que a implementação default de service chama doPost, doGet etc. conforme o tipo de request HTTP.
Então se você sobrepor service, sem chamar doPost, doGet etc. como ele fazia, você vai ver que doPost, doGet etc. nunca vão ser chamadas.
PS: thingol, se manja um esquema legal de ver o fonte da HttpServlet no Eclipse???. Fiz da seguinte forma crtl+(Click mouse esquerdo) ai ele abre o “HttpServlet.class” sendo que o mesmo nem consigo copiar… o próprio eclipse não deixa…
no “JDeveloper” eu consigo facilmente com “CRTL + -”
Acho que nesse caso nao tem sentido uma “recomendacao oficial”… os metodos estao la, sobrescreva o que voce achar mais util. Em todo caso, pra nao ficar com a pulga atras da orelha, verifique o fonte (ou javadoc) da classe, como o thingol disse, pra ter certeza do codigo/funcionalidade que voce esta sobrescrevendo. Pode ser util, como no caso do init(ServletConfig config).
Neste caso especifico o javadoc diz que “nao ha razao” para sobrescrever o service, porque tem o doGet(), doPost(), etc. E eles estao corretos em certo sentido, pois o ideal eh voce colocar o codigo em metodos especificos e apenas fazer uma chamada a partir do “handler” (doGet, doPost, service, etc). Ou seja, no final tanto faz.