java简单验证码绘制
<%@ page import="javax.imageio.ImageIO" %>
<%@ page import="java.awt.*" %>
<%@ page import="java.awt.image.BufferedImage" %>
<%@ page import="java.util.Random" %>
<%@ page contentType="image/jpeg;charset=UTF-8" language="java" %>
<%!
public Color getColor(){
Random random = new Random();
int r = random.nextInt(256);
int p = random.nextInt(256);
int g = random.nextInt(256);
return new Color(r, p, g);
}
public String getNum(){
int random =(int)( Math.random()*8999+1000);
return String.valueOf(random);
}
%>
<%
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-control","no-cache");
response.setHeader("Expires","0");
BufferedImage image = new BufferedImage(160,40,BufferedImage.TYPE_3BYTE_BGR);
Graphics graphics = image.getGraphics();
for (int i = 0; i < 20 ; i++){
Random random = new Random();
int xBegin = random.nextInt(160);
int yBegin = random.nextInt(40);
int xEnd = random.nextInt(xBegin+50);
int yEnd = random.nextInt(yBegin+15);
graphics.setColor(getColor());
graphics.drawLine(xBegin,yBegin,xEnd,yEnd);
}
String checkCode = getNum();
StringBuffer buffer = new StringBuffer();
for(int i =0;i<4;i++){
char c =checkCode.charAt(i);
buffer.append(c+" ");
}
graphics.setColor(Color.gray);
Font font = new Font("Font",Font.TYPE1_FONT,40);
graphics.setFont(font);
graphics.drawString(buffer.toString(),20,30);
session.setAttribute("checkCode",checkCode);
ImageIO.write(image,"jpg",response.getOutputStream());
out.clear();
pageContext.pushBody();
%>