importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjavax.imageio.ImageIO;importjavax.servlet.ServletException;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;publicclassCheckextendsHttpServlet...{privatestaticintWIDTH=60;privatestaticintHEIGHT=20;publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException...{HttpSessionsession=request.getSession();response.setContentType("image/jpeg");ServletOutputStreamsos=response.getOutputStream();//设置浏览器不要缓存图片response.setHeader("Pragma","No-cache");response.setHeader("Cache-Control","no-cache");response.setDateHeader("Expires",0);//创建内存图像并获得图像上下文BufferedImageimage=newBufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);Graphicsg=image.getGraphics();//产生随即得验证码char[]rands=this.generateCheckCode();//产生图像this.drawBackground(g);this.drawRands(g,rands);//结束图像得绘制过程,完成图像g.dispose();//将图像输出到客户端ByteArrayOutputStreambos=newByteArrayOutputStream();ImageIO.write(image,"JPEG",bos);byte[]buf=bos.toByteArray();response.setContentLength(buf.length);bos.write(buf);bos.close();//将验证码放入到session中session.setAttribute("check_code",newString(rands));}privatechar[]generateCheckCode()...{//定义验证码得字符表Stringchars="0123456789abcdefghijklmnopqrstuvwxyz";char[]rands=newchar[4];for(inti=0;i<4;i++)...{intrand=(int)(Math.random()*36);rands[i]=chars.charAt(i);}returnrands;}privatevoiddrawRands(Graphicsg,char[]rands)...{g.setColor(Color.BLACK);g.setFont(newFont(null,Font.ITALIC|Font.BOLD,18));g.drawString(""+rands[0],1,17);g.drawString(""+rands[0],16,15);g.drawString(""+rands[0],31,18);g.drawString(""+rands[0],46,16);}privatevoiddrawBackground(Graphicsg)...{//画背景g.setColor(newColor(0xDCDCDC));g.fillRect(0,0,WIDTH,HEIGHT);for(inti=0;i<120;i++)...{intx=(int)(Math.random()*WIDTH);inty=(int)(Math.random()*HEIGHT);intred=(int)(Math.random()*255);intgreen=(int)(Math.random()*255);intblue=(int)(Math.random()*255);g.setColor(newColor(red,green,blue));g.drawOval(x,y,1,0);}}}