登录注册含验证码

2019-12-21 16:05:20来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

登录注册含验证码

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

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

    用户的对应模型类: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     }                            

原文链接:https://www.cnblogs.com/qjc-hll-520/p/12076917.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:idea创建Maven版的ssm项目

下一篇:正则表达式多选结构的顺序