<html页面>. .
<tr>
<TDclass="td_left">
<Kiadófor="Megnézés">CAPTCHA</Kiadó>
</TD>
<TDclass="td_right ellenőrzés">
<Bemenettype="szöveg"id="Megnézés"név="Megnézés"class="Megnézés">
<imgsrc="checkCodeServlet"magasság="32px"alt=""onclick="changeCheckCode(Ez)">
<Forgatókönyvtype="szöveg/javascript">
//Képkattintási események
FunkcióchangeCheckCode(img) {
img.src="CheckCodeServlet?"+újDátum().getTime();
}
</Forgatókönyv>
</TD>
</tr>//验证码拼接部分Közszolgálati osztályCheckCodeServletKiterjesztiHttpServlet{
@Override
KözérmidoGet(HttpServletRequest request, HttpServletResponse válasz)dobásokServletException, IOException{
//A szerver tájékoztatja a böngészőt, hogy ne gyorsítson
response.setHeader("Pragma","Cache nélkül"); response.setHeader("cache-control","Cache nélkül"); response.setHeader("lejár","0");
//Készíts egy hosszú darabot emlékezetben80, széles30Az alapértelmezett fekete háttér
//1. paraméter: Hossz
//2. paraméter: szélesség
//3. paraméter: Szín
intszélesség =80;
intmagasság =30; BufferedImage kép =újBufferedImage(szélesség, magasság, pufferelt kép.TYPE_INT_RGB);
//Szerezd be az ecsetet
Graphics g = image.getGraphics();
//Állítsd be az ecset színét szürkére
g.setColor(Szín.GÜRKE);
//Töltsd ki a képet
g.fillRect(0,0, szélesség, magasság);
//Producerként4véletlenszerű ellenőrző kód,12Hé
String checkCode = getCheckCode();
//Írd be a kódotHttpSessionKözepes
request.getSession().setAttribute("kód",CheckCode);
//Állítsd be az ecset színét sárgára
g.setColor(Szín.SÁRGA);
//Állítsd be a betűtípus méretét
g.setFont(újBetűtípus("Fekete test",Font.MERÉSZ,24));
//Írj egy verifikációs kódot a képre
g.drawString(checkCode,15,25);
//A kép kimenete a memóriából a böngészőbe
//1. paraméter: Képobjektum
//2. paraméter: A kép formátuma, például:PNG,JPG,GIF
//3. paraméter: Ahol a kép kiindul
ImageIO.írni(kép,"PNG",response.getOutputStream());
}
/**
*Producerként4Bitvéletlen string
*/
magánString getCheckCode() {
String alap ="0123456789ABCDEFGabcdefg";
intméret = alap.hossz(); Véletlenszerű r =újVéletlenszerű(); StringBuffer sb =újStringBuffer();
for(inti=1; i<=4; i++){
//Producerként0to1-es méretvéletlenszerű értékek
intindex = r.nextInt(méret);
//nélAlapstring kapja az alindexetindexSzereplők
charc = base.charAt(index);
//akaratcTegyék beStringBufferMenj középen
sb.append(c);
}
Visszatéréssb.toString();
}
@Override
KözérmidoPost(HttpServletRequest request, HttpServletResponse válasz) dobásokServletException, IOException{
Ez.doGet(kérés, válasz);
}
}
Hogyan lehet ezt elérni?
|