用户登录
2019-08-16 10:44:33来源:博客园 阅读 ()
用户登录
完成系统登录程序,从命令行输入用户名密码。如果没有输入用户名密码,则提示输入用户名和密码;如果输入了用户名提示用户输入密码,然后判断用户名是否为mldn,密码是否为hello,如果正确,则提示登录成功;如果错误显示登录失败信息,用户再次输入用户名和密码,连续3次输入错误后系统退出。
对于此时的程序发现,可以将用户名和密码同时输入,也可以先输入用户名,后输入密码,如果超过3次就表示登录结束,对于用户名和密码的使用可以采用“用户名/密码”的形式完成,如果没有发现“/”表示没有输入密码。
1.定义用户的操作接口
1 package com.alibaba.demo.service; 2 3 public interface IUserService { 4 public boolean isExit(); 5 public boolean login(String username, String password); 6 }
2.定义用户操作接口的子类
1 package com.alibaba.demo.service.impl; 2 3 import com.alibaba.demo.service.IUserService; 4 5 public class UserServiceImpl implements IUserService { 6 private int count=0; 7 @Override 8 public boolean isExit() { 9 return this.count>=3; 10 } 11 @Override 12 public boolean login(String username, String password) { 13 this.count++; 14 return "mldn".equals(username) && "hello".equals(password); 15 } 16 }
3.对于用户的登录失败检测处理操作,应该单独定义一个用户的代理操作类
1 package com.alibaba.demo.service.proxy; 2 import com.alibaba.demo.service.IUserService; 3 import cn.com.sina.demo.util.InputUtil; 4 5 public class UserServiceProxy implements IUserService { 6 private IUserService userService; 7 public UserServiceProxy(IUserService userService) { 8 this.userService = userService; 9 } 10 @Override 11 public boolean isExit() { 12 return this.userService.isExit(); 13 } 14 @Override 15 public boolean login(String username,String password) { 16 while (!this.isExit()) { 17 String inputData = InputUtil.getString("请输入登录信息:"); 18 if(inputData.contains("/")) { 19 String tmp[] = inputData.split("/"); 20 if(this.userService.login(tmp[0], tmp[1])) { 21 return true; 22 }else { 23 System.out.println("登录失败,错误的用户名或密码!"); 24 } 25 }else { 26 String pwd = InputUtil.getString("请输入密码:"); 27 if(this.userService.login(inputData, pwd)) { 28 return true; 29 }else { 30 System.out.println("登录失败,错误的用户名或密码!"); 31 } 32 } 33 } 34 return false; 35 } 36 }
4.定义工厂类
1 package com.alibaba.demo.service.factory; 2 3 import com.alibaba.demo.service.IUserService; 4 import com.alibaba.demo.service.impl.UserServiceImpl; 5 import com.alibaba.demo.service.proxy.UserServiceProxy; 6 7 public class Factory { 8 private Factory() {} 9 public static IUserService getInstance() { 10 return new UserServiceProxy(new UserServiceImpl()); 11 } 12 }
5.信息输入处理类
1 package cn.com.sina.demo.util; 2 3 import java.io.BufferedReader; 4 import java.io.InputStreamReader; 5 6 public class InputUtil { 7 private static final BufferedReader INPUT = new BufferedReader(new InputStreamReader(System.in)); 8 private InputUtil() {} 9 public static String getString(String prompt) { 10 String str = null; 11 boolean flag = true; 12 while(flag) { 13 System.out.println(prompt); 14 try { 15 str = INPUT.readLine().trim(); 16 if(!"".equals(str)) { 17 flag = false; 18 }else { 19 System.out.println("输入的内容不能为空!"); 20 } 21 } catch (Exception e) { 22 System.out.println("输入的内容不能为空!"); 23 } 24 } 25 return str; 26 } 27 }
6.定义测试处理类
1 package com.alibaba.demo; 2 3 import com.alibaba.demo.service.factory.Factory; 4 5 public class IOCaseDemo { 6 public static void main(String[] args) { 7 System.out.println(Factory.getInstance().login(null, null)); 8 } 9 }
原文链接:https://www.cnblogs.com/sunzhongyu008/p/11214483.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- SpringBoot实现微信小程序登录的完整例子 2020-06-01
- 单点登录终极方案之 CAS 应用及原理 2020-05-22
- 如何利用Spring Boot 整合微信小程序实现登录与增删改查(含 2020-05-20
- CRM系统用户登录功能如何实现?Java高级项目实战必学 2020-05-16
- Spring Security 中如何快速查看登录 IP地址等信息?一招搞 2020-05-07
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