<html页面>. .
<tr>
<TDklasse="td_left">
<Labelfor="tjek">CAPTCHA</Label>
</TD>
<TDklasse="td_right tjek">
<Inputtype="tekst"id="tjek"navn="tjek"klasse="tjek">
<IMGsrc="checkCodeServlet"højde="32px"alt=""onclick="changeCheckCode(Dette)">
<Manuskripttype="tekst/javascript">
//Billedklik-begivenheder
FunktionchangeCheckCode(IMG) {
IMG.SRC="CheckCodeServlet?"+NyDate().getTime();
}
</Manuskript>
</TD>
</tr>//验证码拼接部分offentlig klasseCheckCodeServletUdviderHttpServlet{
@Override
Offentlig tomrumdoGet(HttpServletRequest-anmodning, HttpServletResponse-svar)KastServletException, IOException{
//Serveren informerer browseren om ikke at cache
response.setHeader("pragma","no-cache"); response.setHeader("cache-kontrol","no-cache"); response.setHeader("udløber","0");
//Lav en lang en i hukommelsen80, bredt30Den standard sorte baggrund
//Parameter 1: Længde
//Parameter 2: Bredde
//Parameter 3: Farve
intbredde =80;
inthøjde =30; BufferetBillede =NyBufferedImage(Bredde, højde, BufferetBillede.TYPE_INT_RGB);
//Hent børsten
Grafik g = image.getGraphics();
//Sæt penselfarven til grå
g.setColor(Farve.GRAY);
//Fyld billedet ud
g.fillRect(0,0, bredde, højde);
//Produceret4tilfældig verifikationskode,12Ey
Streng checkCode = getCheckCode();
//Indtast kodenHttpSessionMedium
request.getSession().setAttribut("kode",tjekkode);
//Indstil penselfarven til gul
g.setColor(Farve.GUL);
//Indstil størrelsen på skrifttypen
g.setFont(NyDøbefont("Sort krop",Font.BOLD,24));
//Skriv en verifikationskode til billedet
g.drawString(tjekKode,15,25);
//Output billedet fra hukommelsen til browseren
//Parameter 1: Billedobjekt
//Parameter 2: Formatet af billedet, såsom:PNG,JPG,GIF
//Parameter 3: Hvor billedet outputtes
ImageIO.Skriv(billede,"PNG",response.getOutputStream());
}
/**
*Produceret4Bit-tilfældig streng
*/
privatStreng getCheckCode() {
Strengbase ="0123456789ABCDEFGabcdefg";
intstørrelse = base.længde(); Tilfældig r =NyTilfældigt(); StringBuffer sb =NyStringBuffer();
for(inti=1; i<=4; i++){
//Produceret0tilStørrelse-1af tilfældige værdier
intindeks = r.nextInt(størrelse);
//vedBasisstreng get subscript somindeksPersoner
Charc = base.charAt(indeks);
//viljecSæt det iStringBufferGå i midten
sb.append(c);
}
Tilbagevendensb.toString();
}
@Override
Offentlig tomrumdoPost(HttpServletRequest-anmodning, HttpServletResponse-svar) KastServletException, IOException{
Dette.doGet(Anmodning, svar);
}
}
Hvordan opnår man det?
|