<span style="font-size:18px;">package aweiyo.servlet.response1;
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;
import com.sun.org.apache.commons.digester.rss.Image;
public class ResponseServlet7 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int width=120;
int height=30;
//创建一张内存中的缓存图片
BufferedImage bufferedimage=new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB);
//设置背景色
Graphics graphics=bufferedimage.getGraphics();
graphics.setColor(Color.yellow);
graphics.fillRect(0, 0, width, height);
//画边框
graphics.setColor(Color.blue);
graphics.drawRect(0, 0, width-1, height-1);//必须长宽都减一,否则覆盖了
//写验证码内容
graphics.setColor(Color.red);
graphics.setFont(new Font("宋体", Font.BOLD, 18));
String context ="1234567890qwertyuiopsadfghjklzxcvnbm";
//从验证码内容中随机抽取四个字
Random random=new Random();
int x=30;//一个验证码的长
int y=20;//一个验证码的宽
for(int i=0;i<4;i++){
int index=random.nextInt(context.length());
char letter=context.charAt(index);
graphics.drawString(letter+"", x, y);//把一个字符变成字符串最简便的方法是该字符+""
x+=20;
}
//随机释放干扰线
int x1,x2,y1,y2;
graphics.setColor(Color.LIGHT_GRAY);
for(int i=0;i<10;i++){
x1=random.nextInt(width);
x2=random.nextInt(width);
y1=random.nextInt(height);
y2=random.nextInt(height);
graphics.drawLine(x1, y1, x2, y2);
}
//释放图形资源
graphics.dispose();
//将图片输出到浏览器 ImageIo
//将内存的图片成3gp格式到浏览器
ImageIO.write(bufferedimage, "jpg", response.getOutputStream());
System.out.println("00");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
</span>
生成验证码代码
最新推荐文章于 2020-12-30 17:27:28 发布