Olá, pessoal!
Já tentei várias vezes e testamos o meu CPF mas apareceu o mensagem “Erro de digitação”. achei estranho. esse material que pesquisei no site e programei a validar cpf. veja os código em baixo.
Esse classe Servelts que recebe o número CPF e testar a validar cpf e dpois tornar verdadeira aparece outra pagina “Sucesso”.
public class ValidaCPF extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String cpf = request.getParameter("cpf");
Validacao valida = new Validacao();
//esse metodo da classe validacao para testar CPF e se for verdadeira e retorna True no atributo estado.
boolean estado = valida.calculaCPF(cpf);
// comparar se for igual verdadeira e enviar a mensagem da tela HTML, caso nao for verdadeira e aparece a mensagem da caixa de dialogo e volta tela principal.
if(estado == true){
System.out.println(cpf);
JOptionPane.showMessageDialog(null, "Digita com sucesso!");
response.sendRedirect("sucesso.htm");
} else {
JOptionPane.showMessageDialog(null,"Favor digita correto CPF!!");
response.sendRedirect("index.htm");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
Esse é classe da validação
public class Validacao {
public boolean calculaCPF(String cpfNum){
int[]cpf = new int[cpfNum.length()];
int resultP= 0;
int resultS = 0;
boolean estado = false;
//Converte a string para um array de inteiro
for(int i = 0; i<cpfNum.length(); i++){
cpf[i] = Integer.parseInt(cpfNum.substring(i, i+1));
}
for (int i=0; i<9;i++){
int cont = 10;
resultP += cpf[i]*(cont--);
}
int divP= resultP % 11;
if(divP == cpf[9]){
estado = true;
} else {
for(int i=0; i<10;i++){
int cont = 11;
resultS = cpf[i]* (cont--);
}
int divS= resultS % 11;
if(divS == cpf[10]){
estado = true;
}
}
return estado;
}
}
Espero que vcs me ajudem…