黑马作业:生成验证码

内容:可以是小写字母,也可以是大写字母,还可以是数字
规则:长度为5,内容中是四位字母,1位数字,其中数字只有1位,但是可以出现在任意位置
public static void main(String[] args) {
    Random r = new Random();
    //创造一个字符数组去记录52大小写字母
    char[] arr = new char[52];
    int a=0;
    int b=0;
    while (a<52)
        if (a < 26) {
            arr[a] = (char) ('A' + a);
            a++;
        } else {
            arr[a] = (char) ('a' + b);
            a++;
            b++;
        }
    //随机抽取4次
    char[] arr1 = new char[4];
    for (int i = 0; i < arr1.length; i++) {
        int number = r.nextInt(arr.length);
        arr1[i] = arr[number];
    }
    //生成一个数字
    int number = r.nextInt(9) + 1;
    //去创造一个字符数组,将验证码打印进数组
    StringBuilder str = new StringBuilder();
    str.append(arr1).append(number);
    String str1 = str.toString();
    char[] arr2 = str1.toCharArray();
    //打乱字符串里面的数据
    for (int i = 0; i < arr2.length; i++) {
        int newNumber = r.nextInt(arr2.length);
        char temp = arr2[i];
        arr2[i] = arr2[newNumber];
        arr2[newNumber] = temp;
    }
    System.out.println(arr2);

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑马javaweb验证码是一个用于验证用户身份的安全措施。根据引用\[1\]和引用\[2\]的描述,它的核心逻辑如下: 1. 通过验证码生成Servlet生成一个验证码,并将正确的文本存储在session中。 2. 用户在登录页面输入账号、密码和验证码。 3. 从请求中获取这三个参数,并先将用户输入的验证码与session中存储的正确结果进行对比。 - 如果验证码不匹配,则向前端转发一个"验证码不对"的提示。 - 如果验证码正确,则继续验证用户名和密码。 4. 从连接池中查询数据库,检查用户名和密码是否匹配。 - 如果匹配成功,则封装用户名和密码。 - 如果未找到匹配项,则返回Null。 5. 根据验证结果进行相应的跳转。 需要注意的是,根据引用\[3\]的描述,一般情况下,先判断验证码再判断密码的原因是验证码生成的,不需要与数据库进行交互,因此没有数据库开销。此外,转发和重定向的区别在于数据位于的域和请求次数的不同。在本案例中,根据测试结果,两个跳转转发可以转换为重定向,但逆向是不可行的。 综上所述,黑马javaweb验证码是一个用于验证用户身份的安全措施,其核心逻辑包括生成验证码、验证验证码、验证用户名和密码,并根据验证结果进行相应的跳转。 #### 引用[.reference_title] - *1* [黑马程序员_JavaWeb之验证码](https://blog.csdn.net/lixiao000013/article/details/7540995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [JavaWeb验证码案例(Cookie & Session)](https://blog.csdn.net/abyss_miracle/article/details/113733683)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值