[Resolvido]Dúvida sobre formularios html e servlets

4 respostas
Elizeu_Santos

Olá galera,
seguindo a apostila fj21 fiz um formulario html e uma servlet para capturar os dados.
minha duvida… como a servlet "sabe que deve capturar dados de determinado formulario? é apenas pelo url-pattern e o formAction? ficou meio obscura essa parte. desde ja agradeço.

4 Respostas

discorpio

Elizeu_Santos:
Olá galera,
seguindo a apostila fj21 fiz um formulario html e uma servlet para capturar os dados.
minha duvida… como a servlet "sabe que deve capturar dados de determinado formulario? é apenas pelo url-pattern e o formAction? ficou meio obscura essa parte. desde ja agradeço.

Boa tarde Eliseu_Santos.

Se voce se refere a url-pattern configurada no arquivo web.xml, ela serve para identificar qual Servlet deverá ser chamada, isto porque voce pode configurar várias servlets na sua aplicação, veja bem, eu disse pode, não que seja recomendável.

Dependendo de como voce configurou o seu Form dentro do html (se com o método Get ou Post), voce pode sobrescrever na Servlet os métodos doGet ou doPost, onde ambos recebem os parâmetros:
HttpServletRequest request e HttpServletResponse response, onde através do objeto request e seu método getParameter(“nome ou id do inputText”) que voce apanha os valores do formulário.

Quando eu disse que voce pode configurar várias servlets na sua aplicação, porém que não é recomendável, quiz dizer voce pode direcionar uma action para executar um método de uma certa classe, porém isto é um outro conceito que envolve muita explicação.

Primeiramente aprenda a utilizar os métodos doGet e doPost, para que voce possa entender como é passado os valores para servlet.

Elizeu_Santos

discorpio, obrigado pelo auxilio. é que estou seguindo a apostila…

vou mostrar o form a você.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Adicionar novo contato</title>
</head>
<body>
	<form action="adicionaContato"></form>
	<br />Nome:
	<input type="text" name="nome" />
	<br />E-Mail:
	<input type="text" name="email" />
	<br />Endereço:
	<input type="text" name="endereco" />
	<br />Data Nascimento:
	<input type="text" name="dataNascimento" />
</body>
</html>

desculpe a identação… o eclipse é uma m* quando se trata de identar jsp e html.
abraço

discorpio

Boa tarde Eliseu.

Supondo que “adicionaContato” seja o nome da sua Servlet, logo seu o seu Form tiver configurado assim:

....
    ....
   <form action="adicionaContato" method="post">
    .....
    .....

Então dentro desta Servlet voce deve implementar e sobreescrever o método “doPost(HttpServletRequest request, HttpServletResponse response)”, se o method do form fosse “get”, então dentro da Servlet voce deveria impementar e sobreescrever o método “doGet(HttpServletRequest request, HttpServletResponse response)”.

Outra coisa, reparei que voce estava fechando a tag Form antes do componentes InputText, desta forma:

<form action="adicionaContato"></form>  // Errado, não se deve fechar o form aqui
    <br />Nome:  
    <input type="text" name="nome" />  
    <br />E-Mail:  
    <input type="text" name="email" />  
    <br />Endereço:  
    <input type="text" name="endereco" />  
    <br />Data Nascimento:  
    <input type="text" name="dataNascimento" />

Do jeito que está acima, nenhum inputText será configurado dentro do Form, e com isto, nenhum valor de parâmetro será passado para Servlet quando for acionado um button Submit.

<form action="adicionaContato">
    <br />Nome:  
    <input type="text" name="nome" />  
    <br />E-Mail:  
    <input type="text" name="email" />  
    <br />Endereço:  
    <input type="text" name="endereco" />  
    <br />Data Nascimento:  
    <input type="text" name="dataNascimento" />
</form>  // É aqui que o form deve ser fechado.

Outra coisa, configure um botão de submit para que voce possa enviar os dados, e um outro botão de reset para limpar as caixas inputText assim:

<form action="adicionaContato">
    <br />Nome:  
    <input type="text" name="nome" />  
    <br />E-Mail:  
    <input type="text" name="email" />  
    <br />Endereço:  
    <input type="text" name="endereco" />  
    <br />Data Nascimento:  
    <input type="text" name="dataNascimento" />
    <input type="submit" name="submit" value="Enviar" />
    <input type="reset" name="reset" value="Limpar" />
</form>  // É aqui que o form deve ser fechado.
Elizeu_Santos

discorpio
amigo nem sei como agradecer.
muito obrigado pelas dicas!
forte abraço e bom fim de tarde!

Criado 17 de abril de 2011
Ultima resposta 17 de abr. de 2011
Respostas 4
Participantes 2