当前位置: 首页 > news >正文

在登录页面上添加验证码

这是一个简单的登录页面,里面必须通过验证码通过之后才能够进入页面

创建一个servlet(验证码的)

package qcby.util;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.CircleCaptcha;/*** Servlet implementation class Test*/
@WebServlet("/CaptchaServlet")
public class CaptchaServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public CaptchaServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//定义图形验证码的长、宽、验证码字符数、干扰元素个数CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(200, 100, 4, 20);System.out.println(captcha.getCode());HttpSession session = request.getSession();session.setAttribute("captchaVal", captcha.getCode());//输出到浏览器上captcha.write(response.getOutputStream());}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

在之前创建过的js中实现它

$(".btn").on("click",function(){var account = $(".account").val().trim()var password = $(".password").val().trim()var captcha = $(".captcha").val().trim()$.ajax({url:"Studentlogin",type:"get",data:{account,password,captcha},success:function(value){alert(value)if(value=="登录成功"){location.href="student.html"}if(value=="验证码错误"){$("img").click()$(".captcha").val("")}}})
})

在html中也加入相关内容

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="js/jquery-3.7.1.min.js"></script>
<script src="js/jquery.cookie.min.js"></script>
<script src="js/login.js" defer></script>
</head>
<body><div>账号:<input type='text' class='account'><br>密码:<input type='text' class='password'><br>验证码:<input type='text' class='captcha'><img src="CaptchaServlet" width="100" onclick="this.src=this.src+'?'"><br><input type='button' value='登录' class='btn'> </div>
</body>
</html>

<img src="CaptchaServlet" width="100" οnclick="this.src=this.src+'?'">

这里使调整图片的大小和验证码的来源,以及点击验证码的图片就可以刷新,避免看不清验证码无法输入的问题

相关文章:

  • 超详细!RxSwift 中的 BehaviorRelay 使用教程(含原理 + 示例 + 实战)
  • NetSuite 如何得到所有Item最近一次采购订单的货品单价?
  • 不再踩坑!React.memo正确用法及性能优化实战
  • AI时代企业应用系统架构的新思路与CIO变革指南
  • 21、魔法传送阵——React 19 文件上传优化
  • 轻量级证件照制作 AI 工具 HivisionIDPhotos 介绍
  • 单片机自动排列上料控制程序 下
  • DSP28335 串口中断收发及FIFO使用
  • 剖析 FFmpeg:从基本功能到过滤器,实现音视频处理的灵活性
  • 国内云内网接入方案
  • JAVA房屋租售管理系统房屋出租出售平台房屋销售房屋租赁房屋交易信息管理源码
  • linux中的常用命令(一)
  • 运维打铁:服务器分类及PHP入门
  • ElasticSearch基本概念
  • 手撕基于AMQP协议的简易消息队列-8(单元测试的编写)
  • 【即插即用涨点模块】DSConv动态蛇形卷积:自适应聚焦细长弯曲的局部结构特征,助力分割高效提点【附源码+注释】
  • 从简历筛选到面试管理:开发一站式智能招聘系统源码详解
  • JavaScript 性能优化全攻略:从基础到实战
  • 瑞芯微RK3288解决方案:高性能、高扩展性的嵌入式系统设计理念与应用分析
  • C++ 深入解析 数据结构中的 AVL树的插入 涉及的旋转规则
  • 中拉互联网发展与合作论坛在西安开幕
  • 商务部:今年前3月自贸试验区进出口总额达2万亿元
  • 普京召开俄乌谈判筹备会议,拉夫罗夫、绍伊古等出席
  • 订婚不等于性同意!山西订婚强奸案入选最高法案例
  • 香港特区立法会通过条例草案便利外地公司迁册来港
  • 外交部:反对美方人士发表不负责任谬论