Servlet:
package cn.bdqn.servlet; import javax.imageio.ImageIO; 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 java.awt.*; import java.awt.font.ImageGraphicAttribute; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; @WebServlet(name = "Servlet",urlPatterns = "/yanCode") public class Servlet extends HttpServlet { public void doPost(javax.servlet.http.HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request,response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Random random = new Random(); int width=500; int height=50; BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); Graphics graphics = image.getGraphics();//相当于画笔 //画背景 graphics.setColor(Color.gray); graphics.fillRect(0,0,width,height); graphics.setColor(Color.black); for (int i = 0; i <4 ; i++) { int index = random.nextInt(s.length()); String c = s.substring(index, index + 1); graphics.drawString(c,width/5*(i+1),15); } ImageIO.write(image,"jpg",response.getOutputStream()); } }
jsp:
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2017/10/10 Time: 13:04 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>验证码</title> </head> <body> <img src="yanCode" alt="验证码" style=" 500px;height:50px"> <input type="button" value="看不清,更换验证码" id="btn" onclick="changeCode();"> <script type="text/javascript" src="js/jquery.min.js"> </script> <script type="text/javascript" > function changeCode() { $("img").attr('src', 'yanCode?ts=' + new Date().getTime()); } </script> </body> </html>