当前位置: 移动技术网 > IT编程>开发语言>Java > 登录注册含验证码

登录注册含验证码

2019年12月22日  | 移动技术网IT编程  | 我要评论

项目:用户登录和注册(含验证码)

第一步:创建一个对应的用户模型类

    用户的对应模型类:user

              属性:账号:username

              属性:密码:password

              属性:联系方式:phonenumber

              属性:邮箱:email

 1 package cn.aurn.demo02;
 2 /*
 3  *     用户模型类
 4  */
 5 public class user {
 6     //属性
 7     private string username;//账号
 8     private string password;//密码
 9     private string phonenumber;//手机号
10     private string email;//邮件
11     
12     //有参构造方法
13     public user(string username, string password, string phonenumber, string email) {
14         this.username = username;
15         this.password = password;
16         this.phonenumber = phonenumber;
17         this.email = email;
18     }
19 
20     //set和get方法
21     public string getusername() {
22         return username;
23     }
24 
25     public void setusername(string username) {
26         this.username = username;
27     }
28 
29     public string getpassword() {
30         return password;
31     }
32 
33     public void setpassword(string password) {
34         this.password = password;
35     }
36 
37     public string getphonenumber() {
38         return phonenumber;
39     }
40 
41     public void setphonenumber(string phonenumber) {
42         this.phonenumber = phonenumber;
43     }
44 
45     public string getemail() {
46         return email;
47     }
48 
49     public void setemail(string email) {
50         this.email = email;
51     }
52     
53 
54 }

 

第二步:测试类:usertest

    提示用户选择操作,登录之前要判断存储用户信息的集合如果为空,那就提示用户当前没有账户,需要先注册。

 1 package cn.aurn.demo02;
 2 /**
 3  *     用户操作测试类
 4  */
 5 import java.util.arraylist;
 6 import java.util.scanner;
 7 
 8 public class usertest {
 9     
10     //用户输入对象
11     public static scanner scanner = new scanner(system.in);
12     
13     //集合存储用户信息
14     public static arraylist<user> users = new arraylist<user>();
15     
16     //验证码工具对象
17     public static  codeutils codes = new codeutils(); 
18     
19     //主函数
20     public static void main(string[] args) {
21         //用户提示
22         system.out.println("*****欢迎来到打死你战队****** ");
23         
24         while(true) {
25             system.out.println("请进行如下操作:1、登录  2、注册");
26             //用户输入操作
27             string flag = scanner.nextline();
28             //判断用户操作
29             if (flag.equals("1")) {
30                 //登录,判断集合中是否有用户
31                 if (users.isempty()) {
32                     system.out.println("当前没有用户信息,请先注册!");
33                 }else {
34                     login();
35                 }
36             }else if (flag.equals("2")) {
37                 regist();
38             }
39         }
40     }

 

第三步:验证码工具类:codeutils

    利用随机数生成6位验证码(注册时用)和4位验证码(登录时用)。

 1 package cn.aurn.demo02;
 2 
 3 import java.util.random;
 4 
 5 /**
 6  * 验证码生成工具类
 7  */
 8 public class codeutils {
 9 
10     //创建一个数组对象
11     private char[] codes = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
12                     '0','1','2','3','4','5','6','7','8','9',
13                     'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
14 
15     //创建一个随机数对象
16     private random random = new random();
17     
18     /*
19      * 随机生成4位验证码
20      */
21     public string getstringcode4() {
22         //空字符串
23         string code = "";
24         //循环生成4位数验证码
25         for(int i = 0; i < 4; i++) {
26             //每循环一次,随机拿一个验证码
27             int index = random.nextint(codes.length);
28             //每拿到一个,就添加到空的字符串中拼接
29             code += codes[index];
30         }
31         return code;
32     }
33     
34     /*
35      * 随机生成6位数验证码
36      */
37     public string getstringcode6() {
38         //空字符串
39         string code = "";
40         //循环生成4位数验证码
41         for(int i = 0; i < 6; i++) {
42             //每循环一次,我就随机拿一个验证码
43             int index = random.nextint(codes.length);
44             //每拿到一个,就添加到空的字符串中拼接
45             code += codes[index];
46         }
47         return code;
48     }
49 }

 

第四步:注册方法:regist()

    1、提示用户,输入账号,密码,确认密码,注册手机号,验证码。

    2、设置两个开关:账号是否重复:isflag(默认是关的false,即账号不重复);

              注册是否通过:isregist(默认是开的true,即注册通过)。

    3、先判断用户验证码输入的是否正确,不正确就关闭isregist开关,不进行后面的,提醒用户重新再来。

    4、再判断用户输入的密码与确认密码是否一样,不一样就关闭isregist开关,不注册,提示用户重新再来。

    5、for循环存储用户信息的集合,判断用户输入的账号是否已经存在在集合中,如果存在打开isflag开关,关闭isregist开关,提示用户当前账号已存在,重新输入, 

      跳出循环; 如果不存在,就直接注册,将用户输入的信息存储在集合中。

 1     /*
 2      *     注册方法
 3      */
 4     private static void regist() {
 5         //提示用户
 6         //账号
 7         system.out.println("请输入您要注册的账号:");
 8         string username = scanner.nextline();
 9         
10         //密码
11         system.out.println("请输入您要注册的密码:");
12         string password = scanner.nextline();
13         
14         //确认密码
15         system.out.println("请输入您要注册的确认密码:");
16         string repassword = scanner.nextline();
17         
18         //手机号
19         system.out.println("请输入您要注册的手机号:");
20         string phonenumber = scanner.nextline();
21         
22         //邮箱
23         system.out.println("请输入您要注册的邮箱:");
24         string email = scanner.nextline();
25         
26         //生成6位验证码
27         string code = codes.getstringcode6();
28         system.out.println("请输入验证码信息(区分大小写):"+code);
29         string code1 = scanner.nextline();
30         
31         //账户是否重复开关
32         boolean isflag = false;//默认是关闭的,即账号不重复
33         
34         //是否通过注册开关
35         boolean isregist = true;//默认是打开的,即通过注册
36         
37         //判断
38         if (code1.equals(code)) {
39             //验证码正确
40             if (password.equals(repassword)) {
41                 //密码与确认密码正确
42                 //循环遍历账户信息存储集合
43                 for (user user : users) {
44                     //判断是否已经注册过了
45                     if (user.getusername().equals(username)) {
46                         //用户输入账号已注册存在
47                         //打开重复开关
48                         isflag = true;
49                         //关闭注册
50                         isregist = false;
51                         //跳出循环
52                         break;
53                     }
54                 }
55             }else {
56                 system.out.println("确认密码与密码不一致,请重新操作!");
57                 //关闭注册按钮
58                 isregist = false;
59             }
60         }else {
61             system.out.println("验证码输入错误,请重新操作!");
62             //关闭注册按钮
63             isregist = false;
64         }
65         //账号已注册存在
66         if (isflag) {
67             system.out.println("很遗憾,您输入的账号已注册过,请重新输入!");
68         }else {
69             //账号不存在,注册
70             if (isregist) {
71                 user user = new user(username, repassword, phonenumber, email);
72                 //添加信息进集合
73                 users.add(user);
74                 //提示用户
75                 system.out.println("恭喜您,注册成功!");
76             }
77         }
78     }

 

第五步:登录方法:login()

    1、提示用户,输入账号,密码,验证码。

    2、设置一个开关:是否登录成功:islogin(默认是关闭的false)。

    3、先判断用户输入的验证码是否正确,如果不正确,提示用户验证码输入错误,请重新操作。

    4、for循环遍历用户信息集合,然后判断用户输入的账号和密码与集合中的账号与密码是否一样,如果一样,打开islogin开关,提示用户登录成功,退出循环;

       否则,提示用户的账号或密码输入错误,请重新操作。

 1     /*
 2      *     登录方法
 3      */
 4     private static void login() {
 5         //提示用户
 6         // 账号
 7         system.out.println("请输入登录的账号:");
 8         string username = scanner.nextline();
 9 
10         // 密码
11         system.out.println("请输入登录的密码:");
12         string password = scanner.nextline();
13 
14         // 生成4位验证码
15         string code = codes.getstringcode4();
16         system.out.println("请输入验证码信息(区分大小写):" + code);
17         string code1 = scanner.nextline();
18         
19         //设置登录成功开关
20         boolean islogin = false;//默认关闭的,即登陆失败
21         
22         //判断验证码
23         if (code1.equals(code)) {
24             //验证码正确
25             //遍历集合
26             for (user user : users) {
27                 //判断输入的账号与密码与注册的信息进行匹配
28                 if (user.getusername().equals(username) && user.getpassword().equals(password)) {
29                     //登录成功
30                     islogin = true;
31                     system.out.println("登陆成功!");
32                     //退出循环
33                     break;
34                 }
35             }
36             //账户密码输入错误
37             if (!islogin) {
38                 system.out.println("账号或密码输入错误,请重新登录");
39             }
40         }else {
41             system.out.println("验证码输入错误,请重新操作!");
42         }
43     }                            

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网