一、前端代码
<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" οnclick="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()); } }
三、效果展示