`

java生成动态验证码

 
阅读更多

作用:防止表单重复提交 恶意注册

package netVideo.formBean;



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.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class RandomImage extends HttpServlet
{
private static String identify;


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
ServletOutputStream out = response.getOutputStream();
response.setHeader("Expires", "-1");
BufferedImage im = new BufferedImage(80, 30, 1);
Graphics grap = im.getGraphics();
grap.setColor(Color.WHITE);
grap.fillRect(0, 0, 80, 30);
grap.setColor(Color.red);
Random random = new Random();
for (int i = 0; i < 160; i++)
{
int x = random.nextInt(80);
int y = random.nextInt(30);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
grap.drawLine(x, y, x + xl, y + yl);
}
grap.setColor(Color.blue);
grap.setFont(new Font("宋体", 1, 30));
identify = makeString();
grap.drawString(identify, 0, 30);
response.setContentType("image/jpeg");
ImageIO.write(im, "jpeg", out);
}
private String makeString() {
Random rand = new Random();
String str = String.valueOf(rand.nextInt(9999));
StringBuffer sb = new StringBuffer(str);
for (int i = 0; i < 4 - str.length(); i++)
{
sb.append("0");
}
return sb.toString();
}


public static String getString() {
return identify;
}


public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics