一、前端代码
<body>
<script typeof="text/javascript">
var c = 0;
var id ;
function changeCode() {
document.getElementById("identity").src='code?ts=' + new Date().getTime();
countTime();
}
function countTime() {
id = setTimeout(countTime, 1000);
c = c + 1;
if (c < 50) {
document.getElementById("butt").value = 60 - c;
document.getElementById("butt").disabled = true;
}
else if(c > 50&& c < 60){
document.getElementById("butt").value = "0" + (60 - c);
document.getElementById("butt").disabled = true;
}
else {
document.getElementById("butt").value = "请点击";
document.getElementById("butt").disabled = false;
c = 0;
clearTimeout(id);
}
}
</script>
<img src="code" alt="" id="identity" style="cursor: pointer">
<input type="button" id="butt" onclick="changeCode()" value="请点击" width="100" height="30" >
</body>
二、Servlet代码
package com.zxw.helloServlet;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
@WebServlet(name = "VerifyCode",urlPatterns = "/code")
public class VerifyCode extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String data = "013456789";//定义数据池
Random random = new Random();
int width = 100;
int heigth = 30;
BufferedImage image = new BufferedImage(width,heigth,BufferedImage.TYPE_INT_RGB);
Graphics graphics = image.getGraphics();
graphics.setColor(Color.GRAY);//这个颜色的设置只会针对上文,所以下面还需要设置
graphics.fillRect(0,0,width,heigth);
graphics.setColor(Color.black);
for(int i=0;i<4;i++){
int possion = random.nextInt(data.length());
String msg = data.substring(possion,possion + 1);
graphics.drawString(msg,width/5*(i+1),15);
}
ImageIO.write(image,"jpg",response.getOutputStream());
}
}
三、效果展示

本文介绍了一种前端验证码的实现方法,包括HTML、JavaScript和Servlet代码。通过随机生成的四位数字验证码,结合定时刷新按钮,实现了验证码的动态显示和更新。同时,后端Servlet使用Java生成验证码图片。
1061

被折叠的 条评论
为什么被折叠?



