<html页面>. .
<tr>
<TDklasse="td_left">
<Plateselskapetfor="sjekk">CAPTCHA</Plateselskapet>
</TD>
<TDklasse="td_right sjekk">
<Innspilltype="tekst"id="sjekk"navn="sjekk"klasse="sjekk">
<IMGsrc="checkCodeServlet"høyde="32px"alt=""onclick="changeCheckCode(Dette)">
<Manustype="tekst/javascript">
//Bildeklikk-hendelser
FunksjonchangeCheckCode(IMG) {
IMG.SRC="sjekkCodeServlet?"+NyDate().getTime();
}
</Manus>
</TD>
</tr>//验证码拼接部分offentlig klasseCheckCodeServletUtviderHttpServlet{
@Override
Offentlig tomromdoGet(HttpServletRequest-forespørsel, HttpServletResponse-svar)KastServletException, IOException{
//Serveren informerer nettleseren om ikke å cache
response.setHeader("pragma","no-cache"); response.setHeader("cache-kontroll","no-cache"); response.setHeader("utløper","0");
//Lag en lang en i minnet80, bredt30Standard svart bakgrunn
//Parameter 1: Lengde
//Parameter 2: Bredde
//Parameter 3: Farge
Intbredde =80;
Inthøyde =30; BufferedImage-bilde =NyBufferedImage(Bredde, høyde, Bustret Bilde.TYPE_INT_RGB);
//Hent børsten
Grafikk g = image.getGraphics();
//Sett penselfargen til grå
g.setColor(Farge.GRAY);
//Fyll ut bildet
g.fillRect(0,0, bredde, høyde);
//Produsert4tilfeldig verifiseringskode,12Ey
Streng checkCode = getCheckCode();
//Tast inn kodenHttpSessionMiddels
request.getSession().setAttribute("kode",sjekkKode);
//Sett penselfargen til gul
g.setColor(Farge.GUL);
//Sett størrelsen på fonten
g.setFont(NyDøpefont("Svart kropp",Font.BOLD,24));
//Skriv en verifiseringskode til bildet
g.drawString(sjekkKode,15,25);
//Send ut bildet fra minnet til nettleseren
//Parameter 1: Bildeobjekt
//Parameter 2: Formatet på bildet, for eksempel:PNG,JPG,GIF
//Parameter 3: Hvor bildet sendes ut
ImageIO.skriv(bilde,"PNG",response.getOutputStream());
}
/**
*Produsert4Bit-tilfeldig streng
*/
privatStreng getCheckCode() {
Strengbase ="0123456789ABCDEFGabcdefg";
Intstørrelse = base.lengde(); Tilfeldig r =NyTilfeldig(); StringBuffer sb =NyStringBuffer();
for(Inti=1; i<=4; i++){
//Produsert0tilStørrelse-1av tilfeldige verdier
Intindeks = r.nextInt(størrelse);
//påBasestreng get subscript somindeksKarakterer
Charc = base.charAt(indeks);
//viljecSett innStringBufferGå i midten
sb.append(c);
}
Tilbakesb.toString();
}
@Override
Offentlig tomromdoPost(HttpServletRequest-forespørsel, HttpServletResponse-svar) KastServletException, IOException{
Dette.doGet(forespørsel, svar);
}
}
Hvordan oppnå det?
|