简单验证码

来源:互联网 发布:citra 3ds模拟器 mac 编辑:程序博客网 时间:2024/06/06 05:35

简单验证码的实现
以下是主要代码:
package cn;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
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;

public class ImageDemo1 extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)        throws ServletException, IOException {    int width=120,height=30;    //1。在内存中生成图片,BufferedImage    BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);    //2。获取画笔    Graphics g=bufferedImage.getGraphics();    g.setColor(Color.yellow);    //3。填充的矩形     g.fillRect(0, 0, width,height);    //边框    g.setColor(Color.blue);    g.drawRect(0, 0, width-1, height-1);    //设置字体    g.setFont(new Font("隶书",Font.BOLD,20));   //4。写在画板上    String words="\u53f6\u538b\u6162\u53d4\u80cc\u7ec60123456789ABCDEFGHqwertyuiopasdfghjklzxcvbnm";    int x=10,y=20;    Random random=new Random();    for(int i=0;i<4;i++){        //获取下标        int index=random.nextInt(words.length());        //获取指定位置的字符        char ch=words.charAt(index);        //划到画板上        g.drawString(""+ch, x, y);        x+=20;    }    //5。画线    int x1,y1,x2,y2;    g.setColor(Color.green);    for(int i=1;i<4;i++){        x1=random.nextInt(width);        y1=random.nextInt(height);        x2=random.nextInt(width);        y2=random.nextInt(height);        g.drawLine(x1, y1, x2, y2);    }    //将图片输出到客户端    ImageIO.write(bufferedImage, "jpg", response.getOutputStream());}public void doPost(HttpServletRequest request, HttpServletResponse response)        throws ServletException, IOException {      doGet(request, response);}

}

原创粉丝点击