quarta-feira, 16 de março de 2011
VALIDAÇÃO DE CPF -MÉTODO AUXILIAR-hasOnlyNumber
O método hasOnlyNumber tem a s seguintes características:
Nome do Método | hasOnlyNumber | |
Argumento ou parâmetro | String str | É o que está colocado entre os parêntesis |
Processamento | Todo código colocado entre as chaves | |
Tipo de retorno | boolean | Colocado antes do nome do método |
Nível de acesso | public | Permite acesso geral, dentro da classe e fora da classe |
Assinatura do Método | A primeira linha de código do método | public String hasOnlyNUmer(String str) |
Este método tem por objetivo retornar false caso o usuário tenha digitado letra no lugar de número ou não tenha colocado o traço ou o ponto antes dos dígitos verificadores.
Este método declara a variável hasOnlyNumber do tipo Boolean e atribui o valor false como valor inicial.
Em seguida, através da estrutura de repetição baseada no for verifica se cada caractere digitado trata-se de um dígito número, exceto o traço.
Assim o for declara i do tipo inteiro com valor inicial em 0.
Na primeira vez que o código dentro do for executado, i vale 0, de forma o código dentro do IF é executado, pois 0 é diferente de 9.
Dentro do IF , o método isDigit da classe Character é responsável por verificar se o caractere trata-se de um dígito numérico. Se for dígito numérico, então a variável hasOnlyNumber recebe true, caso contrário recebe false.
O segundo IF dentro do primeiro IF é responsável por parar a repetição do for caso hasOnlyNumber receba um false. Ou seja, se ao fazer a varredura e encontrar qualquer coisa diferente de um dígito numérico, a repetição é interrompida pelo break e a linha de código return hasOnlyNumber é executada.
Para cada valor de i esse processo se repete, até encontre um false ou até todos os caracteres tenham sido varridos.
Para o valor de i igual a 9 corresponde ao momento em que se está acessando o traço ou o ponto que separa os dígitos verificadores. Neste momento, o código dentro do else passa a ser executado.
Dentro do código do else é verificado se existe um traço ou um ponto antes dos dígitos verificadores. Caso isso ocorra, a repetição é interrompida, e o método retorna false.
VALIDAÇÃO DE CPF - PROCESSAMENTO
O processamento verifica se a caixa de texto está vazia ou tem números misturados com letras então:
É solicitado ao usuário para digitar um CPF no formato correto
caso contrário
Se o CPF for válido então
Confirma que o CPF é válido
Caso contrário
Informa que se trata um CPF inválido
VALIDAÇÃO DO CPF - LEITURA
A leitura dos dados dos formulário, simplesmente basta usar o método request.getParameter("cpf"). O único ponto que merece destaque corresponde ao arguento recebido pelo método. Esse argumento deve ter o mesmo nome da caixa de texto colocada no formulário, colocado entre aspas duplas.
Outro fato, se refere ao tipo de dado lido. No caso String, portanto a variável que recebe o dado lido é declarada do tipo String .
A variável do tipo String msg será usada par armazenar a mensagem, se o o CPF é válidoou não.
VALIDAÇÃO DE CPF - PROCESSANDO A VALIDAÇÃO
A página cpf-recebe.jsp será analisada por partes. Clique na Figura para ver a imagem ampliada.
Basicamente temos três partes:
Basicamente temos três partes:
- Leitura dos dados do formulário. No caso apenas o valor digitado do CPF
- Processamento. No caso realizar o processo de validação do CPF. Esta parte está embutida a chamada dos métodos auxiliares
- getDigito
- validaDigitosVerificadores
- hasOnlyNumber
- Escrita na Tela . Após o obter os resultado, exibí-los na tela
VALIDAÇÃO DO CPF - -FORMULÁRIO
Abaixo segue o código do arquivo cpf-formulario.jsp que tem apenas umm formulário com uma caixa de texto e um botão submit.
Observe que a tag form define o atributo action como sendo cpf-recebe.jsp, portanto os dados serão enviados para esta página.
Como o atributo method não está explícito, vale a regra: todo atributo não explicitado usa o valor padrão. Nesse caso o valor padrão corresponde ao método GET. Ou seja, nesse caso os dados serão enviados anexados ao final da URL na barra de endereço.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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>Valida CPF</title>
</head>
<body>
<center>
<h1>Validação de CPF</h1>
<form name="f1" action="cpf-recebe.jsp">
CPF:<input type="text" name="cpf" value="123456789-09" />
<input type="submit" value="Validar" />
</form>
</center>
</body>
</html>
Observe que a tag form define o atributo action como sendo cpf-recebe.jsp, portanto os dados serão enviados para esta página.
Como o atributo method não está explícito, vale a regra: todo atributo não explicitado usa o valor padrão. Nesse caso o valor padrão corresponde ao método GET. Ou seja, nesse caso os dados serão enviados anexados ao final da URL na barra de endereço.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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>Valida CPF</title>
</head>
<body>
<center>
<h1>Validação de CPF</h1>
<form name="f1" action="cpf-recebe.jsp">
CPF:<input type="text" name="cpf" value="123456789-09" />
<input type="submit" value="Validar" />
</form>
</center>
</body>
</html>
Validação de CPF
A validação de CPF verifica apenas se os dois dígitos finais são válidos quando verificados de acordo com a regra de definição dos seus valores. Em outras palavras, os dois dígitos finais dependem dos outros dígitos.
Para exemplificar usaremos o CPF 123456789-09.
Cálculo do Dígito Verificador 1(Div1):
1)Basta fazermos as seguintes operações:
soma=1*10+2*9+3*8+4*7+5*6+6*5+ 7*4+8*3+9*2=210
2)Calcular o resto da divisão por 11: resto=mod(soma/11)=210%11=1
Lembre-se calcular o resto da divisão usa-se mod no Excel e % na lIngaugem Java
3) Aplica a regra:
Se o resto for menor que 2 então{
o dígito verificador 1 é 0
}
Caso contrário{
o dígito verificador é igual a (11-resto)
}
Portanto Div1=0 pois o resto é menor que 2
Portanto Div2=11-2=9 pois o resto não é menor que 2
Para exemplificar usaremos o CPF 123456789-09.
Cálculo do Dígito Verificador 1(Div1):
1)Basta fazermos as seguintes operações:
soma=1*10+2*9+3*8+4*7+5*6+6*5+ 7*4+8*3+9*2=210
2)Calcular o resto da divisão por 11: resto=mod(soma/11)=210%11=1
Lembre-se calcular o resto da divisão usa-se mod no Excel e % na lIngaugem Java
3) Aplica a regra:
Se o resto for menor que 2 então{
o dígito verificador 1 é 0
}
Caso contrário{
o dígito verificador é igual a (11-resto)
}
Portanto Div1=0 pois o resto é menor que 2
Cálculo do Dígito Verificador 2 ( Div2):
1)Basta fazermos as seguintes operações:
soma=1*11+2*10+3*9+4*8+5*7+6*6+ 7*5+8*4+9*3 +div1*2=210
2)Calcular o resto da divisão por 11: resto=mod(soma/11)=210%11=1
Lembre-se calcular o resto da divisão usa-se mod no Excel e % na lIngaugem Java
3)Aplique a regra:
Se o resto for menor que 2 então{
o dígito verificador 1 é 0
}
Caso contrário{
o dígito verificador é igual a (11-resto)
}
Portanto Div2=11-2=9 pois o resto não é menor que 2
Assinar:
Postagens (Atom)




