<html页面>. .
<tr>
<tdklase ="td_left">
<Etiķetepar ="Pārbaudīt">CAPTCHA</Etiķete>
</td>
<tdklase ="td_right pārbaude">
<Ievadetips ="teksts"id ="Pārbaudīt"vārds="Pārbaudīt"klase ="Pārbaudīt">
<imgsrc ="checkCodeServlet"augstums ="32px"alt =""onclick ="mainīt kontrolkodu(šis)">
<Skriptstips ="teksts/javascript">
//Attēlu klikšķu notikumi
funkcijamainīt kontrolkodu(img) {
img.Src="checkCodeServlet?"+jaunumsDatums().getLaiks();
}
</Skripts>
</td>
</tr>//验证码拼接部分Publiskā klaseCheckCodeServletpagarinaHttpServlet{
@Override
publiska spēkā neesamībadoGet(HttpServletRequest pieprasījums, HttpServletResponse atbilde)metieniServletException, IOException{
//Serveris informē pārlūkprogrammu nesaglabāt kešatmiņā
response.setHeader("Pragma","bez kešatmiņas"); response.setHeader("kešatmiņas kontrole","bez kešatmiņas"); response.setHeader("beidzas","0");
//Izveidojiet garu atmiņā80, plats30Noklusējuma melnais fons
//1. parametrs: garums
//2. parametrs: platums
//3. parametrs: krāsa
intplatums =80;
intaugstums =30; BufferedImage attēls =jaunumsBuferētais attēls(platums, augstums, buferētais attēls.TYPE_INT_RGB);
//Iegūstiet suku
Grafika g = attēls.getGraphics();
//Otas krāsas iestatīšana uz pelēku
g.setColor(Krāsa.PELĒKS);
//Aizpildiet attēlu
g.fillRect(0,0, platums, augstums);
//Ražots4izlases veida verifikācijas kods,12Ey
String checkCode = getCheckCode();
//Ievietojiet koduHttpSessionVidējas intensitātes sāpes
request.getSession().setAttribute("kods",kontrolkods);
//Otas krāsas iestatīšana uz dzeltenu
g.setColor(Krāsa.DZELTENS);
//Iestatiet fonta lielumu
g.setFont(jaunumsFonts("Melns ķermenis",Fonts.DROSMĪGS,24));
//Uzrakstiet attēlam verifikācijas kodu
g.drawString(kontrolkods,15,25);
//Izvadiet attēlu no atmiņas uz pārlūkprogrammu
//1. parametrs: attēla objekts
//2. parametrs: attēla formāts, piemēram:PNG, JPG, GIF
//3. parametrs: attēla izvades vieta
Attēls.rakstīt(attēls,"PNG",response.getOutputStream());
}
/**
*Ražots4Bitu nejauša virkne
*/
privātsVirkne getCheckCode() {
Virknes bāze ="0123456789ABCDEFGabcdefg";
intizmērs = bāze.garums(); Nejaušs r =jaunumsNejaušs(); StringBuffer sb =jaunumsVirknes buferis();
par(inti =1; i<=4; i++){
//Ražots0līdzizmērs-1no nejaušām vērtībām
intindekss = r.nextInt(lielums);
//pieBāzevirkne iegūt apakšrakstu kāIndekssRakstzīmes
oglesc = bāze.charAt(Indekss);
//GribascIevietotVirknes buferisIet pa vidu
sb.pievienot(c);
}
Atgriešanāssb.toString();
}
@Override
publiska spēkā neesamībadoPost(HttpServletRequest pieprasījums, HttpServletResponse atbilde) metieniServletException, IOException{
šis.doGet(pieprasījums,atbilde);
}
}
Kā to sasniegt?
|