登录注册含验证码
2019-12-21 16:05:20来源:博客园 阅读 ()
登录注册含验证码
项目:用户登录和注册(含验证码)
第一步:创建一个对应的用户模型类
用户的对应模型类: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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:正则表达式多选结构的顺序
- springboot~注册不同级别包里的bean~scanBasePackages 2020-06-10
- SpringBoot实现微信小程序登录的完整例子 2020-06-01
- ahjesus-2020 Intellij idea 最新注册码 已稳定数月 亲测有 2020-05-25
- 单点登录终极方案之 CAS 应用及原理 2020-05-22
- 第六章第三十一题(金融应用:信用卡号的合法性验证)(Finan 2020-05-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash