Informações

Tipo: Tutorial
Data de Publicação: 01/01/2004
Revisado em: 01/01/2004

Vote!

  • Currently 3,6/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags Relacionadas

jsp

Comentários ( 6 )

Imprimir

Tratando de Formulários com JSP

por:

Ulisses Telemaco (ulisses@j2eebrasil.com.br)

Os formulários são ferramentas úteis e muito usada em diversas aplicações: cadastro registros em um banco de dados, validação de um login/senha, envio de email, envio de dados de um pesquisa, etc. Hoje é difícil desenvolver uma aplicação para Web que não exija o uso de formulários. Pois bem, na lição de hoje vamos aprender manipular formulários em aplicações JSP.

Apresentamos abaixo um código para mostrar o formato de um formulário HTML e de seus objetos.

<html>
<body>

<!-- cabeçalho do formulário -->
<form name="nomedoformulario" action="paginajsp.jsp" method="get">

<!-- caixa de texto -->
<input type="text" name="variavel1" size=40 maxlength=40>

<!-- caixa de texto para senha -->
<input type="password" name="variavel2" size=40 maxlength=40>

<!-objeto do tipo radio -->
<input type="radio" name="variavel2" value="valordavariavel">Texto da Varivavel 2

<!-objeto do tipo checkbox -->
<input type="checkbox" name="variavel3" value="xxxxx"> Texto da Varivavel 3

<!-objeto do tipo select -->
<select name="variavel4">
    <option value="valor1">Valor 1
    <option value="valor2">Valor 2
    <option value="valor3">Valor 3
</select>

<!- area de texto -->
<textarea name="variavel5" cols=40 rows=2>
Texto da Variavel 5
</textarea>

<!- objeto hidden, para enviar dados que o usuário não vê no formulário -->
<input type="hidden" name="asd" value="asd">

<!- botão -->
<input type="button" value="textodobotao">

<!- botao de limpar informações do formulário -->
<input type="submit" value="limpar">

<!- botao de enviar formulário -->
<input type="submit" value="ok">

<!- imagem colocada para funcionar com botao de envio de formulário -->
<input type="image" src="pathdaimage/image.gif">

<!- objeto para anexar arquivo -->

<input type="file" name="asdas" accept="asd">

</form>

</body>
</html>

É importante fazermos algumas observações a cerca do código acima:

  • No cabeçalho do formulário, indicamos através de action="pathdoarquivo/paginajsp.jsp" o arquivo JSP que receberá os seus dados;
  • Cada objeto do formulário recebe um nome. Deve-se tomar bastante cuidado ao nomear tais objetos, isto porque, como sabemos, as variáveis Java são sensíveis maiúscula/minúscula.

Portanto, os objetos:

<input name="variavel1" type="text" value="">
<input name="Variavel1" type="text" value="">

São objetos diferentes porque receberam nomes diferentes (variavel1 e Variavel1).

Mostraremos mais um exemplo (bastante simples) de como enviar dados a partir de um formulário a uma página JSP.

<%-- Arquivo teste.jsp --%>
<html>
<body>

<center><h1> <%= request.getParameter("teste") %> </h1></center>

<form action="teste.jsp" method=get>
<input type="text" name="teste" size=40 maxlength=40><br>
<input type="submit" value="enviar">
</form>

</body>
</html>

A página jsp acima, chamada "teste.jsp", contém um formulário que envia para ela mesma. O valor digitado em uma caixa de texto será mostrado como título da página. Observe como fizemos isso:

  1. A página para qual nós enviaremos os dados do formulário é designada no cabeçalho do formulário:
    <form action="teste.jsp" method=get>

  2. O nome do objeto caixa de texto caixa de texto ("teste") é usado na expressão request.getParameter("teste"). Note que se usássemos request.getParameter("Teste") (com T maiúsculo), a página não iria retornar o valor digitado na caixa de texto.

    O próximo exemplo é formado por dois arquivos. O primeiro pode contém apenas códigos HTML e o segundo contém códigos HTML e JSP.

    Arquivo "envia_mês.htm":

    <html>
    <body>
    
    <h3>Qual o mês do seu aniversário?</h3>
    <form action="recebe_mes.jsp" method=get>
    <select name="mesNasceu">
    	<option value="1">Janeiro
    	<option value="2">Fevereiro
    	<option value="3">Março
    	<option value="4">Abril
    	<option value="5">Maio
    	<option value="6">Junho
    	<option value="7">Julho
    	<option value="8">Setembro
    	<option value="9">Agosto
    	<option value="10">Outubro
    	<option value="11">Novembro
    	<option value="12">Dezembro
    </select>
    
    <input type="submit" value="enviar">
    </form>
    
    </body>
    </html>
    

    Arquivo "recebe_mês.jsp":

    <%@ page import=java.util.Date %>
    <%@ page import=java.lang.String %>
    <%
    String msg = "";
    String mesString = request.getParameter("mesNasceu");
    int mes      = Integer.parseInt(mesString);
    Date dateNow = new Date();
    int monthNow = dateNow.getMonth() + 1;
    
    mes -= monthNow;
    
    
    if (mes == 1)
         msg = "Falta apenas "+ mes +" mês para o seu aniversário.";
    
    if (mes == -1)
         msg = "Seu aniversário foi no mês passado";
    
    if (mes > 1)
         msg = "Faltam "+ mes +" meses para o seu aniversário.";
    
    if (mes == 0)
         msg = "Oba... estamos no mês do seu aniversário.";
    
    else if (mes < 1)  
        {
        mes *= -1;
        msg = "Seu aniversário foi a "+ mes +" meses atrás.";
        } 
    
    %>
    
    <html>
    <body>
    <center>
    <h3><%= msg %></h3>
    <br><br><br>
    <a href="Javascript:history.back(-1)">voltar</a>
    </center>
    
    </body>
    </html>
    

    O exemplo acima é um pouco menos simples que o primeiro. O arquivo "envia_mes-jsp" contém um formulário com um objeto select que envia o mês que a pessoa nasceu. Após escolher o mês e clicar no botâo "ok", o formulário chama a página "recebe_mês.jsp" e envia seus dados para ela. Esta segunda página é um pouco menos simples que a primeira. Vamos analisar o que ela faz:

  3. Nas primeira linhas utilizamos as tags "page import" para indicar quais classes iremos utilizar em nossa página:

    <%@ page import=java.util.Date %>
    <%@ page import=java.lang.String %>
    

  4. Cinco objetos são criados e inicializados.
  5. Usamos o método "request.getParameter(´nomedoparametro´)" com a finalidade de pegar o valor passado para a página através de algum formulário ou passando diretamente em sua URL. O segundo objeto foi inicializado utilizando esse método para pegar o valor passado pelo formulário:

    String mesString = request.getParameter("mesNasceu");
    

  6. O valor passado através de um formulário ou através da URL da página é sempre do tipo String. Ao inicilizarmos o terceiro objeto, o método "Integer.parseInt(variavelString)" transformou o valor contido na variável mesString em Inteiro.

    int mes = Integer.parseInt(mesString);
    

  7. O penúltimo objeto criado é do tipo Date (daí a importância de termos importado a classe java.util.Date na primeira linha de nossa página). Ele é inicializado com a hora local do servidor.

    Date dateNow = new Date();
    

  8. Na inicialização do último objeto utilizamos o método "dateNow.getMonth()" que retorna um inteiro indicando o valor da variável. Somamos 1 ao valor retornado a partir desse método porque ele retorna 0 para janeiro, 1 para fevereiro e assim por diante.

    int monthNow = dateNow.getMonth() + 1;
    

  9. Cinco teste são efetuados dentro de um script (<% e %>). Eles são usados para definir o valor que a variável "msg" terá, ou seja, a partir dos testes, decidiremos qual mensagem será exibida na tela.
  10. Após efetuar os testes, o texto HTML é inserido na página.
  11. Uma expressão (<%= %>) é usada para exibir o valor da variável "msg":

    <%= msg %>
    

Comentários (6)

Gostaria de saver como faz para criar um cookie com os valores login e senha e depois verificar se estão corretos e abrir uma certa página senão abrir outra de erro
postado por Paulo em 13/10/2006 às 23:21
Gostaria de saber, quando eu tenho um formulário com varios campos, como faço para meu request.getparameter pegar os valores e strings dos campos, já que são misturados?
postado por Petronilo Padilha em 27/04/2007 às 23:21
Olá. Gostaria de saber como faço para verificar, usando o método, POST ou GEt (não sei qual dos dois), se um campo do formulário já está cadastrado no Banco de dados. Por xeemplo, quando digito o cpf, ele vai no banco de dados e verifica se esse cpf já foi cadastrado. Tô usando o cpf=request.getParameter("cpf");, mas num tá dando certo. Obrigado
postado por Luiz Paulo em 04/06/2007 às 23:21
948b9d68 46143bbe fe4 for more info click to danni minogue lesbian video [URL= http://ala-i-as.com/website/media/lesbian.php?q=danni-minogue-lesbian-video ]danni minogue lesbian video[/URL] about armpitlicking lesbian [URL= http://ala-i-as.com/website/media/lesbian.php?q=armpitlicking-lesbian ]armpitlicking lesbian[/URL] big cock sex anal lesbian [URL= http://ala-i-as.com/website/media/lesbian.php?q=big-butts-lesbians ]big cock sex anal lesbian[/URL] information aphrodite academy lesbian [URL= http://ala-i-as.com/website/media/lesbian.php?q=antoinette-molino-lesbian ]aphrodite academy lesbian[/URL] about about anna faris lesbian kiss vid [URL= http://ala-i-as.com/website/media/lesbian.php?q=anna-faris-lesbian-kiss-vid ]anna faris lesbian kiss vid[/URL] black lesbian porn [URL= http://ala-i-as.com/website/media/lesbian.php?q=black-lesbian-poetry ]black lesbian porn[/URL] about bbw lesbian movies [URL= http://ala-i-as.com/website/media/lesbian.php?q=bbw-lesbian-movies ]bbw lesbian movies[/URL] about ameteur lesbians first time [URL= http://ala-i-as.com/website/media/lesbian.php?q=ameteur-lesbians-first-time ]ameteur lesbians first time[/URL] about amy courter lesbian [URL= http://ala-i-as.com/website/media/lesbian.php?q=ammy-girls-lesbian-porn ]amy courter lesbian[/URL] information about abbey winters lesbians [URL= http://ala-i-as.com/website/media/lesbian.php?q=aa-cup-lesbians-kissing ]abbey winters lesbians[/URL] big butt lesbians [URL= http://ala-i-as.com/website/media/lesbian.php?q=big-busty-lesbians ]big butt lesbians[/URL] about about animated lesbian sex [URL= http://ala-i-as.com/website/media/lesbian.php?q=animated-cartoonlesbians ]animated lesbian sex[/URL] dolores o riordan lesbian [URL= http://ala-i-as.com/website/media/lesbian.php?q=dolly-parton-lesbian ]dolores o riordan lesbian[/URL] information where get cruel lesbian rape pictures info [URL= http://ala-i-as.com/website/media/lesbian.php?q=cruel-lesbian ]cruel lesbian rape pictures info[/URL] ? for more info click to amateur lesbian sex videos [URL= http://ala-i-as.com/website/media/lesbian.php?q=amateur-lesbian-sex-clips ]amateur lesbian sex videos[/URL] find more about anal sex hot lesbians here [URL= http://ala-i-as.com/website/media/lesbian.php?q=anal-lesbianthumbs ]anal sex hot lesbians here[/URL] about cheerleader lesbian orgy information [URL= http://ala-i-as.com/website/media/lesbian.php?q=cheatinglesbians-natasha ]cheerleader lesbian orgy information[/URL] about britney spears shannon funk lesbian [URL= http://ala-i-as.com/website/media/lesbian.php?q=britney-spears-lesbian-rumors ]britney spears shannon funk lesbian[/URL] where get blonde college lesbians info [URL= http://ala-i-as.com/website/media/lesbian.php?q=blonde-busty-lesbians ]blonde college lesbians info[/URL] ? where get alesbian stories info [URL= http://ala-i-as.com/website/media/lesbian.php?q=alcoholics-anonymous-meetings-lesbian-maryland ]alesbian stories info[/URL] ? Lucky to find you, keep on the good workk guys! Best of luck.
postado por Sveta em 03/10/2007 às 23:21
mxqgiq no credit check student loan mxqgiq mxqgiq loan for student with bad credit mxqgiq mxqgiq Buy Adderall Online mxqgiq mxqgiq Aricept mxqgiq mxqgiq BACTRIM mxqgiq
postado por mxqgiq em 03/03/2008 às 23:21
Preteen Lingerie Gallery
postado por Preteen Girl Kissing em 09/05/2008 às 23:21
Comente!

Observações

Os campos em negrito são obrigatórios.

Para evitar problemas, este espaço é moderado. Após o envio do comentário será necessário aguardar pela sua aprovação.