HttpServletResponse验证码功能实现

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

resp.setHeader("refresh","3");//浏览器3秒刷新一次
BufferedImage image = new BufferedImage(100,40,BufferedImage.TYPE_INT_RGB);//创建一张图片
Graphics2D g = (Graphics2D) image.getGraphics(); //获得一支笔
g.setColor(Color.white);
g.fillRect(0,0,100,40);
resp.setContentType("image/jpg"); //告诉浏览器请求用图片格式响应
g.setColor(Color.blue);
g.setFont(new Font(null,Font.BOLD,20));
g.drawString(makenum(),10,20);
//不让浏览器缓存
resp.setDateHeader("expires",-1);
resp.setHeader("Cache- Control","no-Cache");
resp.setHeader("Pragma","no-Cache");
//写出图片
ImageIO.write(image,"png",resp.getOutputStream());


}
//生成随机数
private String makenum(){

Random random = new Random();
String a = random.nextInt(8888888) +"";
StringBuffer sb = new StringBuffer();


for (int i =0;i<7-a.length();i++){

sb.append("0");
}
a= sb.toString()+a;
return a;
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}


posted @ 2021-04-10 11:59  dohp  阅读(63)  评论(0)    收藏  举报