<html页面>. .
<TR>
<TDklasse="td_left">
<Labelvoor="Check">CAPTCHA</Label>
</TD>
<TDklasse="td_right check">
<Inputtype="tekst"id="Check"naam="Check"klasse="Check">
<IMGsrc="checkCodeServlet"hoogte="32px"alt=""onclick="changeCheckCode(Dit)">
<Scripttype="tekst/javascript">
//Afbeeldingsklik-evenementen
FunctiechangeCheckCode(IMG) {
IMG.SRC="CheckCodeServlet?"+NieuwDate().getTime();
}
</Script>
</TD>
</TR>//验证码拼接部分Openbare klasseCheckCodeServletUitbreidtHttpServlet{
@Override
Openbare LeegtedoGa(HttpServletRequest-verzoek, HttpServletResponse-antwoord)WorpenServletException, IOException{
//De server informeert de browser om niet te cachen
response.setHeader("pragma","no-cache"); response.setHeader("cache-controle","no-cache"); response.setHeader("verloopt","0");
//Maak een lange in het geheugen80, breed30De standaard zwarte achtergrond
//Parameter 1: Lengte
//Parameter 2: Breedte
//Parameter 3: Kleur
intbreedte =80;
inthoogte =30; BufferedImage-afbeelding =NieuwBufferedImage(breedte, hoogte, gebufferde afbeelding.TYPE_INT_RGB);
//Pak de borstel
Graphics g = image.getGraphics();
//Stel de penseelkleur in op grijs
g.setColor(Kleur.GRIJS);
//Vul de foto aan
g.fillRect(0,0, breedte, hoogte);
//Geproduceerd4willekeurige verificatiecode,12Ey
String checkCode = getCheckCode();
//Voer de code inHttpSessionGemiddeld
request.getSession().setAttribuut("code",checkCode);
//Stel de penseelkleur in op geel
g.setColor(Kleur.GEEL);
//Stel de grootte van het lettertype in
g.setFont(NieuwDoopvont("Zwart lichaam",Lettertype.VERDOMD,24));
//Schrijf een verificatiecode op de afbeelding
g.drawString(checkCode,15,25);
//Voer de afbeelding uit het geheugen naar de browser
//Parameter 1: Beeldobject
//Parameter 2: Het formaat van de afbeelding, zoals:PNG,JPG,GIF
//Parameter 3: Waar het beeld wordt uitgevoerd
ImageIO.schrijf(afbeelding,"PNG",response.getOutputStream());
}
/**
*Geproduceerd4Bitwillekeurige string
*/
PrivéString getCheckCode() {
Snaarbasis ="0123456789ABCDEFGabcdefg";
intgrootte = basis.lengte(); Willekeurig r =NieuwWillekeurig(); StringBuffer sb =NieuwStringBuffer();
voor(inti=1; i<=4; i++){
//Geproduceerd0AanGrootte-1van willekeurige waarden
intindex = r.nextInt(grootte);
//opBasisstring get subscript alsindexPersonages
charc = base.charAt(index);
//wilcZet het inStringBufferGa in het midden
sb.append(c);
}
Terugkeersb.toString();
}
@Override
Openbare LeegtedoPost(HttpServletRequest-verzoek, HttpServletResponse-antwoord) WorpenServletException, IOException{
Dit.doGet(verzoek, antwoord);
}
}
Hoe bereik je dat?
|