jsp实现简单验证码的方法
本文实例讲述了jsp实现简单验证码的方法。分享给大家供大家参考。具体如下:
这里只有一个文件,可以在<img/>的src属性里直接调用显示,适用于各种项目的表单安全验证
jsp页面代码:
<%@pagecontentType="image/jpeg"import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%> <%! ColorgetRandColor(intfc,intbc){ Randomrandom=newRandom(); if(fc>255)fc=255; if(bc>255)bc=255; intr=fc+random.nextInt(bc-fc); intg=fc+random.nextInt(bc-fc); intb=fc+random.nextInt(bc-fc); returnnewColor(r,g,b); } %> <% response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires",0); intwidth=60,height=20; BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB); Graphicsg=image.getGraphics(); Randomrandom=newRandom(); g.setColor(getRandColor(200,250)); g.fillRect(0,0,width,height); g.setFont(newFont("TimesNewRoman",Font.PLAIN,18)); g.setColor(getRandColor(160,200)); for(inti=0;i<155;i++){ intx=random.nextInt(width); inty=random.nextInt(height); intxl=random.nextInt(12); intyl=random.nextInt(12); g.drawLine(x,y,x+xl,y+yl); } StringsRand=""; for(inti=0;i<4;i++){ Stringrand=String.valueOf(random.nextInt(10)); sRand+=rand; g.setColor(newColor(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110))); g.drawString(rand,13*i+6,16); } session.setAttribute("rand",sRand); g.dispose(); ImageIO.write(image,"JPEG",response.getOutputStream()); response.getOutputStream().flush(); response.getOutputStream().close(); out.clear(); out=pageContext.pushBody(); %>
希望本文所述对大家的JSP程序设计有所帮助。