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

news2025/7/10 23:54:05

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

  • 一、第1关:使用Servlet生成验证码
    • 1、任务描述
    • 2、编程要求
    • 3、评测代码
  • 二、第2关:用户登录时校验验证码是否正确
    • 1、任务描述
    • 2、编程要求
    • 3、评测代码
  • 三、第3关:使用Kaptcha组件生成验证码
    • 1、任务描述
    • 2、编程要求
    • 3、评测代码

一、第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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/5738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年前端开发未来可期

☆ 对于很多质疑&#xff0c;很多不解&#xff0c;本文将从 △ 目前企业内前端开发职业的占比&#xff1b; △ 目前业内开发语言的受欢迎程度&#xff1b; △ 近期社区问答活跃度&#xff1b; 等维度来说明目前前端这个职业的所处位置。 ☆ 还有强硬的干货&#xff0c;通过深入…

跳槽前恶补面试题,成功上岸阿里,拿到33k的测开offer

不知不觉间&#xff0c;时间过得真快啊。作为一名程序员&#xff0c;应该都清楚每年的3、4月份和9、10月份都是跳槽的黄金季&#xff0c;各大企业在这段时间会大量招聘人才。在这段时间里&#xff0c;有人欢喜有人悲。想必各位在跳槽前都会做好充足的准备&#xff0c;同样做足了…

详细讲解网络协议:TCP和UDP什么区别?

该文章是学习了 B 站 up 主的视频做的总结&#xff0c;讲的很通俗易懂&#xff0c;首先感谢博主的分享。视频地址&#xff1a;https://www.bilibili.com/video/BV1kV411j7hA/?spm_id_from333.337.search-card.all.click&vd_source0a3d4c746a63d737330e738fa043eaf6 重新认…

【HDU No. 3567】八数码 II Eight II

【HDU No. 3567】八数码 II Eight II 杭电OJ 题目地址 【题意】 八数码&#xff0c;也叫作“九宫格”&#xff0c;来自一个古老的游戏。在这个游戏中&#xff0c;你将得到一个33的棋盘和8个方块。方块的编号为1&#xff5e;8&#xff0c;其中一块方块丢失&#xff0c;称之为“…

【python】基础复习

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录python的应用基础语法编码标识符python保留字第一个注释多行语句数字(Number)类型字符串(String)print 默认输出是换行的&#xff0c;如果要实现不换行需要在变量末尾加上 end""&#xff1a;impor…

猿创征文|在校大学生学习UI设计必备工具及日常生活中使用的软件

嗨&#xff0c;大家好&#xff0c;我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助&#xff0c;请支持一波。 希望未来可以一起学习交流。 我是一名在校大二的学生&#xff0c;目前在学习关于UI设计方向的一些课程&#xff0c;平时会用到UI设计必备的工…

我终于读懂了适配器模式。。。

文章目录&#x1f5fe;&#x1f306;什么是适配器模式&#xff1f;&#x1f3ef;类适配器模式&#x1f3f0;对象适配器模式⛺️接口适配器模式&#x1f3ed;适配器模式在SpringMVC 框架应用的源码剖析&#x1f5fc;适配器模式的注意事项和细节&#x1f306;什么是适配器模式&am…

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

基于SDN环境下的DDoS异常攻击的检测与缓解--实验基于SDN环境下的DDoS异常攻击的检测与缓解--实验1.安装floodlight2.安装sFlow-RT流量监控设备3.命令行安装curl工具4.构建拓扑5.DDoS 攻击检测6.DDoS 攻击防御7.总结申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&am…

PNG怎么转换成PDF?这篇文章教会你

有时候我们需要查找一些图片资料并将它打印出来&#xff0c;但是在网上的图片大多是以PNG格式存在的&#xff0c;这个时候&#xff0c;我们就需要先利用一些转换软件把PNG转换成PDF文件的格式&#xff0c;从而方便我们进行打印。那么你们知道PNG转PDF怎么转换吗&#xff1f;今天…

第四章:前缀和、差分(数列)

前缀和差分一、前缀和1、 什么是前缀和2、 前缀和的作用3、 前缀和的例题和模板&#xff08;1&#xff09;一维数组的前缀和C版C版&#xff08;2&#xff09;二维数组的前缀和a.思路&#xff1a;b.题目和模板&#xff1a;C版C版二、差分1、什么是差分&#xff1f;2、差分有什么…

FFplay文档解读-43-视频过滤器十八

29.170 telecine 将电视电影处理应用于视频。 此过滤器接受以下选项&#xff1a; first_field选项解释top, ttop field firstbottom, b底部字段优先默认值为top pattern一串数字&#xff0c;表示希望应用的下拉模式。 默认值为23。 Some typical patterns:NTSC output (30i…

传统纸业如何实现数字化,S2B2C系统网站赋能渠道提升供应链管理效率

一千多年前&#xff0c;我们老祖宗发明了造纸术&#xff0c;纸张成为方便、廉价的信息载体&#xff0c;由此影响了中国乃至世界文明的进程。如今&#xff0c;随着信息技术的普及&#xff0c;纸张作为信息载体的功能日益弱化&#xff0c;但作为一种环保材料将会更广泛地融入我们…

通过宠物商店理解java面向对象

前言&#xff1a;本篇博客&#xff0c;适合刚刚学完java基础语法的但是&#xff0c;对于面向对象&#xff0c;理解不够深刻的读者&#xff0c;本文通过经典的宠物商店&#xff0c;来让读者深刻的理解&#xff0c;面向对象&#xff0c;IS-A&#xff0c;HAS-A法则。本文不仅仅是简…

Spring更简单保存和获取bean对象的方法(注解)

Spring更简单保存和获取bean对象的方法前置准备将bean对象更为简单地保存到Spring容器中&#xff08;使用注解&#xff09;【使用类注解】 (是写在类前的)为什么要这么多类注解&#xff1f;类注解之间的关系使用类注解 Bean 命名规则使用方法注解&#xff08;Bean&#xff09;不…

[MySQL]数据库的约束与表的设计

专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 文章目录 1.数据库约束 1.1 约束类型 1.2 null 约束 1.…

Redis面试题

目录 面试题&#xff1a;谈谈你对Redis的理解&#xff1f; 面试题&#xff1a;Redis的基本数据类型 Redis的基本数据类型以及它们的应用场景&#xff1a; 面试题&#xff1a;redis内存淘汰机制 面试题&#xff1a;Redis持久化机制 RDB AOF 面试题&#xff1a;Redis写时复…

相似度系列-3:传统方法ROUGE ROUGE: A Package for Automatic Evaluation of Summaries

文章目录ROUGE: A Package for Automatic Evaluation of Summariesintroduction基础模型Rouge-NRouge_NmultiROUGE-L: Longest Common Subs equence1**Sentence-level LCS**2**Summary-Level LCS**ROUGE-W: Weighted Longest Common SubsequenceROUGE-S: Skip-Bigram Co-Occurr…

Python小总结

Python小总结一、open&#xff08;一&#xff09;open的定义&#xff1a;open是Python的内置函数&#xff0c;一般用于本地文件的读写操作。&#xff08;二&#xff09;open例子&#xff1a;二、with open&#xff08;一&#xff09;用途&#xff1a;with open是Python用来打开…

04 数学软件与建模---最优化模型

一、优化模型的数学描述 二、优化模型的分类 1.根据是否存在约束条件 有约束问题和无约束问题。 2.根据设计变量的性质 静态问题和动态问题。 3.根据目标函数和约束条件表达式的性质 线性规划&#xff0c;非线性规划&#xff0c;二…

PiL测试实战(上)| 模型生成代码的单元级PiL测试

前言 对于嵌入式代码&#xff0c;为了测试软件能否在目标芯片上实现预期的功能&#xff0c;通常需要进行PiL测试&#xff08;Processor-in-the-Loop-Testing&#xff09;。 目前市面上较为常见的嵌入式软件调试工具有PLS UDE和LAUTERBACH Trace32等。UDE和Trace32可以很好的完…