Response生成注册验证码实现例子

1,Response 发送注册验证图片实现代码:ResponseDrawPic.java

import java.awt.Color;  
import java.awt.Font;  
import java.awt.Graphics;  
import java.awt.image.BufferedImage;  
import java.io.IOException;  
import java.util.Random;  
  
  
import javax.imageio.ImageIO;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
@SuppressWarnings("serial")  
public class ResponseDrawPic extends HttpServlet {  
  
    public void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
            //设置头,控制浏览器不要缓存文件  
                response.setHeader("Expries", "-1");  
                response.setHeader("Cache-Control", "no-cache");  
                response.setHeader("progma", "no-cache");  
            //5,通知浏览器以图片方式打开      
            response.setHeader("Content-type", "image/jpeg");  
            //1,在内存中创建一副图片  
                BufferedImage image = new BufferedImage(80, 20, BufferedImage.TYPE_INT_RGB);  
            //2,得到图片  
                Graphics g = image.getGraphics();  
                g.setColor(Color.WHITE);  
                g.fillRect(0, 0, 80, 20);  
            //3,向图片上写数据  
                g.setColor(Color.BLUE);  
                g.setFont(new Font(null, Font.BOLD,20));  
                g.drawString(makeNum(), 0, 20);  
            //4,将图片写给浏览器  
                ImageIO.write(image, "jpg", response.getOutputStream());  
              
    }  
      
    private String makeNum() {  
        Random r= new Random();  
        String num=r.nextInt(9999999)+"";  
        StringBuffer sb =new StringBuffer();  
        for(int i=0;i<7-num.length();i++){//不足7位数的时候补足0  
            sb.append("0");  
        }  
        num=sb.toString()+num;  
        return num;  
    }  
  
    public void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
            doGet(request, response);  
    }  
  
}  

2,简单注册页面register.html 

<form action="">  
        用户名:<input type="text" name="username"></br>  
        密     码:<input type="password" name="password"></br>  
        认证码:<input type="text" name="checkcode"><img src="/MyWebStart/servlet/ResponseDrawPic"></br>  
        <input type="submit" value="注册">  
</form> 
原文地址:https://www.cnblogs.com/lichone2010/p/3127887.html