在登录页面上添加验证码

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

创建一个servlet(验证码的)

java 复制代码
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 stub
		doGet(request, response);
	}

}

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

javascript 复制代码
$(".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中也加入相关内容

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+'?'">

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

相关推荐
计算机源码社13 小时前
基于Hadoop+Spark的黄金市场历史数据特征分析与可视化大屏 基于K-Means聚类算法的黄金历史价格阶段划分研究
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计
2601_962300811 天前
机器学习贴士:使用Python编写MapReduce
hadoop·python·机器学习·mapreduce·数据处理
爱吃火鸡面呀1 天前
HDFS 架构深度解析:从核心组件到数据读写全流程
hadoop·hdfs·架构
宽海智能仓储物流1 天前
航发自动化立体库异构系统改造:宽海智能30天联调技术全解析
运维·数据仓库·自动化
m0_547486662 天前
《大数据技术与应用:Hadoop和PySpark实现》全套PPT课件2026
大数据·hadoop
IT毕设梦工厂2 天前
计算机毕业设计选题推荐:基于大数据的印度上市公司财务指标数据可视化分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·信息可视化·spark·课程设计·大数据毕设项目
爱吃火鸡面呀2 天前
HDFS 文件读取流程深度解析:从客户端请求到数据落地的完整链路
大数据·hadoop·hdfs
程序员小羊!2 天前
医疗数据仓库ODS层敏感信息防护实战:7大关键策略
数据仓库
kaoa0002 天前
Linux入门攻坚——89、Hadoop-1-架构及概念
大数据·linux·hadoop·分布式
BYSJMG2 天前
计算机毕业设计选题推荐:基于大数据的水质多指标关联分析与可视化的设计与实现,Spark 加 K-Means 做水质分群
大数据·hadoop·信息可视化·数据分析·spark·kmeans·课程设计