Java判断用户名和密码是否符合要求过程详解

这篇文章主要介绍了Java判断用户名和密码过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

假设在某仓库管理系统的登录界面中需要输入用户名和密码,其中用户名只能由 6~10 位数字组成,密码只能有 6 位,任何不符合用户名或者密码要求的情况都视为异常,并且需要捕获并处理该异常。

下面使用自定义异常类来完成对用户登录信息的验证功能,实现步骤如下。

(1) 编写自定义异常类 LoginException,该类继承自 Exception。在 LoginException 类中包含两个构造方法,分别为无参的构造方法和含有一个参数的构造方法,代码如下:

public class LoginException extends Exception
{
	public LoginException()
	 {
		super();
	}
	public LoginException(String msg)
	 {
		super(msg);
	}
}

(2) 创建测试类 Test08,在该类中定义 validateLogin() 方法,用于对用户名和密码进行验证。当用户名或者密码不符合要求时,使用自定义异常类 LoginException 输出相应的异常信息。validateLogin() 方法的定义如下:

public Boolean validateLogin(String username,String pwd)
{
	Boolean con=false;
	//用户名和密码是否正确
	Boolean conUname=false;
	//用户名格式是否正确
	try
	{
		if(username.length()>=6&&username.length()<=10)
		{
			for (int i=0;i<username.length();i++)
			{
				char ch=username.charAt(i);
				//获取每一个字符
				if(ch>='0'&&ch<='9')
				{
					//判断字符是否为0~9的数字
					conUname=true;
					//设置 conUname 变量值为 true
				} else
				{
					//如果字符不是0~9的数字,则拋出LoginException异常
					conUname=false;
					throw new LoginException("用户名中包含有非数字的字符!");
				}
			}
		} else
		{
			//如果用户名长度不在6~10位之间,拋出异常
			throw new LoginException("用户名长度必须在6〜10位之间!");
		}
		if(conUname)
		{
			//如果用户名格式正确,判断密码长度
			if(pwd.length()==6)
			{
				//如果密码长度等于6
				con=true;
				//设置con变量的值为true,表示登录信息符合要求
			} else
			{
				//如果密码长度不等于6,拋出异常
				con=false;
				throw new LoginException("密码长度必须为 6 位!");
			}
		}
	}
	catch(LoginException e)
	{
		//捕获 LoginException 异常
		System.out.println(e.getMessage());
	}
	return con;
}

(3) 在 Test08 类中添加 main() 方法,调用 validateLogin() 方法,如果该方法返回 true,则输出登录成功的信息。main() 方法的定义如下:

public static void main(String[] args)
{
	Scanner input=new Scanner(System.in);
	System.out.println("用户名:");
	String username=input.next();
	System.out.println("密码:");
	String password=input.next();
	Test08 lt=new Test08 ();
	Boolean con=lt.validateLogin(username,password);
	//调用 validateLoginO 方法
	if(con)
	{
		System.out.println("登录成功!");
	}
}

在本程序的 validateLogin() 方法中使用条件控制语句和 for 循环语句分别对用户名和密码进行了验证。任何不符合用户名或者密码要求的情况都拋出自定义异常 LoginException,并在 catch 语句中捕获该异常,输出异常信息。

运行程序,当用户输入的用户名含有非数字字符时将拋出 LoginException 异常,执行 catch 语句块中的代码打印异常信息,如下所示。

用户名:
xiake8!
密码:
123456
用户名中包含有非数字的字符!

当用户输入的用户名长度不在 6~10 位时同样会拋出 LoginException 异常并打印异常信息,如下所示。

用户名:
administrator
密码:
123456
用户名长度必须在6~10位之间!

当用户输入的登录密码不等于 6 位时也会拋出 LogWException 异常,并打印出异常信息,如下所示。

用户名:
20181024
密码:
12345
密码长度必须为 6 位!

当用户输入的用户名和密码都符合要求时,则打印登录成功的信息,如下所示。

用户名:
20181024
密码:
123456
登录成功!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java判断字符串包含某个字符的实例方法

    java判断字符串是否包含某个字符的方法: 一.contains方法 1:描述 java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char值序列 2:声明 public boolean contains(CharSequence s) 3:返回值 如果此字符串包含返回true,否则返回false. 4:实例 public static void main(String[] args) { String str = "abc"; bool

  • java判断一个字符串是否是小数的方法

    函数介绍: matches() 方法用于检测字符串是否匹配给定的正则表达式. 语法: public boolean matches(String regex) 返回值: 在字符串匹配给定的正则表达式时,返回 true. StringUtils.isBlank(String str)判断某字符串是否为空或长度为0或由空白符(whitespace) 构成. 示例如下: /** * 判断是否是整数或者是小数 * @param str * @return true:是,false不是 */ privat

  • Java使用Socket判断某服务能否连通代码实例

    这篇文章主要介绍了Java使用Socket判断某服务能否连通代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 业务场景:判断socket server在否在线,在线返回true,不在线返回false package com.thinkgem.wlw.modules.test.socketdemo; import java.io.IOException; import java.net.InetSocketAddress; import j

  • Java判断用户输入月份的季节

    要求: *  根据用户输入的月份来判断该月季节 实现代码: import java.util.Scanner; /** * 要求: * 根据用户输入的月份来判断该月季节 * @author Administration * */ public class JudgeSeason { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个月份

  • java判断用户输入的是否至少含有N位小数的实例

    判断用户输入的是否至少含有N位小数. 1.当用户输入的是非数字时抛出异常,返回false. 2.当用户输入数字是,判断其数字是否至少含有N位小数,如果不含有,返回false. 3.当用户输入的数字的小数位数大于等于N时,返回true. public class ddouble { public static void main(String args[]) { String str = " .1124 "; boolean sfdouble = doubleyn(str,4); Sys

  • java判断是否空最简单的方法

    java判断是否空的方法: 1.判断字符串或者对象是否为空 StringUtils的判断 StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判断是否为空的方法参数是字符序列类,也就是String类型 StringUtils.isEmpty(Object str); //而org.springframework.util包下的参数是Object类,也就是不仅仅能判断String类型,还能判

  • java正则表达式获取大括号小括号内容并判断数字和小数亲测可用

     获取大括号小括号内容 项目开发用到了,暂做个简单记录 private static String regex = "\\{([^}]*)\\}";//匹配大括号 private static String regexx = "\\(([^}]*)\\)";//匹配小括号 public static void main(String[] args) { String dakuohao = "{a+b}={c+d}>{d}"; Pattern

  • java使用Cookie判断用户登录情况的方法

    本文实例为大家分享了java使用Cookie判断用户登录情况的方法,供大家参考,具体内容如下 1.判断是否登录 public boolean isLogin() { Set<Cookie> cookies = this.browser.getCookies(); String JSESSIONIDID = "JSESSIONID"; String sessionIdID = "sessionId"; String loginID = "logi

  • Java判断用户名和密码是否符合要求过程详解

    这篇文章主要介绍了Java判断用户名和密码过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 假设在某仓库管理系统的登录界面中需要输入用户名和密码,其中用户名只能由 6~10 位数字组成,密码只能有 6 位,任何不符合用户名或者密码要求的情况都视为异常,并且需要捕获并处理该异常. 下面使用自定义异常类来完成对用户登录信息的验证功能,实现步骤如下. (1) 编写自定义异常类 LoginException,该类继承自 Exception.在 L

  • Java 判断字符串中是否包含中文的实例详解

    Java 判断字符串中是否包含中文的实例详解 Java判断一个字符串是否有中文是利用Unicode编码来判断,因为中文的编码区间为:0x4e00--0x9fbb, 不过通用区间来判断中文也不非常精确,因为有些中文的标点符号利用区间判断会得到错误的结果.而且利用区间判断中文效率也并不高,例如:str.substring(i, i + 1).matches("[\\一-\\?]+"),就需要遍历整个字符串,如果字符串太长效率非常低,而且判断标点还会错误.这里提高 一个高效准确的判断方法,使

  • java开发分布式服务框架Dubbo暴露服务过程详解

    目录 Dubbo服务暴露机制 前言 服务暴露流程 源码解析 本地暴露 远程暴露 Dubbo服务暴露机制 前言 在进行服务暴露机制的分析之前,必须谈谈什么是URL,在Dubbo服务暴露过程中URL是无处不在的,贯穿了整个过程. 一般情况下,URL指的是统一资源定位符,标准格式如下: protocol://host:port/path?key1=value1&key2=value2 Dubbo就是用这种URL的方式来作为约定的参数类型,服务之间也是用URL来进行交互. Dubbo用URL作为配置总线

  • java开发分布式服务框架Dubbo服务引用过程详解

    目录 大致流程 服务引用策略 服务引用的三种方式 服务引入流程解析 总结 大致流程 Provider将服务暴露出来并且注册到注册中心,而Consumer通过注册中心获取Provider的信息,之后将自己封装成一个调用类去与Provider进行交互. 首先需要将所有调用转化为Dubbo中我们熟悉的Invoker,再通过代理类去远程获取服务. 大致流程如下: 服务引用策略 服务的引用和服务的暴露原理相似,都是Spring自定义标签机制解析生成对应的Bean,在之前服务暴露使用到的Provider S

  • Java解压和压缩带密码的zip文件过程详解

    前言 JDK自带的ZIP操作接口(java.util.zip包,请参看文章末尾的博客链接)并不支持密码,甚至也不支持中文文件名. 为了解决ZIP压缩文件的密码问题,在网上搜索良久,终于找到了winzipaes开源项目. 该项目在google code下托管 ,仅支持AES压缩和解压zip文件( This library only supports Win-Zip's 256-Bit AES mode.).网站上下载的文件是源代码,最新版本为winzipaes_src_20120416.zip,本

  • Java传入用户名和密码并自动提交表单实现登录到其他系统的实例代码

    不用单点登录,模拟远程项目的登录页面表单,在访问这个页面的时候自动提交表单到此项目的登录action,就可以实现登录到其他系统. ssh框架项目 1.以下是本地系统的action代码: import java.io.IOException; import java.util.List; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.i

  • JavaScript判断用户名和密码不能为空的实现代码

    JavaScript判断用户名和密码不能为空的实现代码 <script language="javascript"><!-- function VF_form1(){ //v2.0 <!--start_of_saved_settings--> <!--type,password,name,Password,required,true,errMsg,密码不能为空!--> <!--type,text,name,User,required,tr

  • Spring Security 实现用户名密码登录流程源码详解

    目录 引言 探究 登录流程 校验 用户信息保存 引言 你在服务端的安全管理使用了 Spring Security,用户登录成功之后,Spring Security 帮你把用户信息保存在 Session 里,但是具体保存在哪里,要是不深究你可能就不知道, 这带来了一个问题,如果用户在前端操作修改了当前用户信息,在不重新登录的情况下,如何获取到最新的用户信息? 探究 无处不在的 Authentication 玩过 Spring Security 的小伙伴都知道,在 Spring Security 中

  • Java 知识难点之异常的认知与使用详解

    目录 前言 一. 异常的背景 初识异常 数组下标越界 访问 null 对象 异常分为2种: 异常体系: 防御式编程: 异常的好处 LBYL 风格的代码(不使用异常) EAFP 风格的代码(使用异常) 二.异常的基本用法 基本语法 异常处理流程 关于异常的处理方式 抛出异常 三. 自定义异常类 前言 本篇文章你会学习到什么是异常,异常的基本语法使用,和自定义异常,干货多多!!! 一. 异常的背景 初识异常 我们曾经的代码中已经接触了一些 "异常" 了. 例如 除以 0 public st

  • java 查询oracle数据库所有表DatabaseMetaData的用法(详解)

    一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName,password); DatabaseMetaData dbmd = con.getMetaData(); 二. 方法getTables的用法 原型: ResultSet DatabaseMetaData.getTables(String catalog,String schema,String tableName,String []type

随机推荐