头歌-信息安全技术-Java生成验证码

这篇博客介绍了如何在Java环境中生成及验证验证码。首先通过Servlet实现基础的验证码生成,然后在用户登录时进行校验。接着引入Kaptcha组件进一步完善验证码功能。提供了前后端交互的代码示例,包括验证码的刷新和校验逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、第1关:使用Servlet生成验证码

1、任务描述

本关任务:使用servlet生成验证码。

2、编程要求

web.xml中的代码已经添加,按照上述步骤编写servlet代码,点击测评即可。
效果图:

在这里插入图片描述

3、评测代码

第一关只需按照相关知识中给出的代码照抄即可通关!
在这里插入图片描述

二、第2关:用户登录时校验验证码是否正确

1、任务描述

本关任务:编写程序验证验证码是否正确。

2、编程要求

好了,该你啦,使用本关所学内容,完成登录的校验,具体要求如下:

  • 首先实现验证码校验的功能,当验证码填写错误的时候,给前端返回数据“验证码错误”;
  • 当用户名为admin,密码为admin123时可以登录成功,返回“登录成功”,其他情况返回“登录失败”;
  • 前端页面已经编写完成,你需要编写的是后端代码。

3、评测代码

在这里插入图片描述

        PrintWriter writer=resp.getWriter();
        String verifycode=req.getParameter("verifycode");
        String username=req.getParameter("username");
        String password=req.getParameter("password");
        HttpSession session=req.getSession();
        String realCode=(String) session.getAttribute("sessionYzm");
        if(verifycode!=null && verifycode.equals(realCode)){
           if("admin123".equals(password) && "admin".equals(username)){
               writer.write("登录成功");
           }else{
               writer.write("登录失败");
           }
        }else{
            writer.write("验证码错误");
        }

三、第3关:使用Kaptcha组件生成验证码

1、任务描述

本关任务:使用Kaptcha组件生成验证码,并校验验证码是否正确。

2、编程要求

好了,到你啦,来使用Kaptcha生成验证码并校验输入的验证码是否正确吧。

  • 补全captchacode.jsp,实现验证码表单的页面效果;
  • 补全CheckCaptchaServlet,实现验证码的校验功能,验证码正确返回:验证码输入正确,否则返回:验证码输入错误。

3、评测代码

在这里插入图片描述
在这里插入图片描述

        PrintWriter out=resp.getWriter();
        HttpSession session=req.getSession();
        String trueCaptcha=(String) session.getAttribute(Constants.KAPTCHA_SESSION_KEY);
        String inputCaptcha=req.getParameter("captcha");
        if(trueCaptcha.toLowerCase().equals(inputCaptcha.toLowerCase())){
            out.write("验证码输入正确");
        }else{
            out.write("验证码输入错误");
        }
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript">
       function reloadCode(){
           var date=new Date().getTime();
           document.getElementById("code").src="<%=request.getContextPath() %>/imageKaptcha?d="+date;
       }
    </script>
</head>
<body>
<!--------- Begin --------->
<form action="checkCaptcha.jsp" method="post">
    <img alt="验证码" src="imageKaptcha" id="code"><a href="javascript:reloadCode();">看不清</a>
    <input type="text" name="captcha">
    <input type="submit" value="submit">
</form>
<!--------- End --------->
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不服输的小乌龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值