<html页面>. .
<tr>
<TDClasă="td_left">
<Casă de discuripentru="Verificat">CAPTCHA</Casă de discuri>
</TD>
<TDClasă="td_right verificat">
<IntrareTip="text"id="Verificat"Nume="Verificat"Clasă="Verificat">
<IMGsrc="checkCodeServlet"înălțime="32px"alt=""onclick="changeCheckCode(Asta)">
<ScenariuTip="text/javascript">
//Evenimente de click pe imagine
FuncțiechangeCheckCode(IMG) {
IMG.src="checkCodeServlet?"+NoutățiData().getTime();
}
</Scenariu>
</TD>
</tr>//验证码拼接部分Clasa publicăCheckCodeServletextindeHttpServlet{
@Override
Nulitate publicădoGet(Cerere HttpServletRequest, răspuns HttpServletResponse)AruncăriServletException, IOException{
//Serverul informează browserul să nu facă cache
response.setHeader("pragma","fără cache"); response.setHeader("controlul cache-ului","fără cache"); response.setHeader("expiră","0");
//Creează una lungă în memorie80, larg30Fundalul negru implicit
//Parametrul 1: Lungime
//Parametrul 2: Lățime
//Parametrul 3: Culoare
intLățime =80;
intÎnălțime =30; ImagineBufferedImage =NoutățiBufferedImage(lățime, înălțime, imagine tamponată.TYPE_INT_RGB);
//Ia peria
Grafică g = image.getGraphics();
//Setează culoarea pensulei pe gri
g.setColor(Culoare.GRI);
//Completează imaginea
g.fillRect(0,0, lățime, înălțime);
//Producție4cod de verificare aleatorie,12Ey
Șir checkCode = getCheckCode();
//Introdu codulHttpSessionMedie
request.getSession().setAttribute("cod",checkCode);
//Setează culoarea pensulei pe galben
g.setColor(Culoare.GALBEN);
//Setează dimensiunea fontului
g.setFont(NoutățiFont("Corp negru",Font.ÎNDRĂZNEȚ,24));
//Scrie un cod de verificare pentru imagine
g.drawString(checkCode,15,25);
//Trimite imaginea din memorie către browser
//Parametrul 1: Obiectul imagine
//Parametrul 2: Formatul imaginii, cum ar fi:PNG, JPG, GIF
//Parametrul 3: Unde este afișată imaginea
ImageIO.Scrie(imagine,"PNG",răspuns.getOutputStream());
}
/**
*Producție4Șiruri aleatoare de biți
*/
PrivatȘir getCheckCode() {
Baza coardului ="0123456789ABCDEFGabcdefg";
intDimensiune = Bază.Lungime(); Aleatoriu r =NoutățiAleatoriu(); StringBuffer sb =NoutățiStringBuffer();
pentru(inti=1; i<=4; i++){
//Producție0laMărimea 1ale valorilor aleatoare
intindex = r.nextInt(mărime);
//laBazăstring get subscript caindexPersonaje
Charc = base.charAt(index);
//voințăcPune-lStringBufferMergi pe mijloc
sb.append(c);
}
Întoarcereasb.toString();
}
@Override
Nulitate publicădoPost(Cerere HttpServletRequest, răspuns HttpServletResponse) AruncăriServletException, IOException{
Asta.doGet(cerere, răspuns);
}
}
Cum să reușești asta?
|