<html页面>. .
<tr>
<TDKlasse="td_left">
<Etikettfor="Check">CAPTCHA</Etikett>
</TD>
<TDKlasse="td_right check">
<EingabeTyp="Text"id="Check"name="Check"Klasse="Check">
<IMGsrc="checkCodeServlet"height="32px"alt=""onclick="changeCheckCode(das)">
<DrehbuchTyp="Text/JavaScript">
//Bildklick-Ereignisse
FunktionchangeCheckCode(IMG) {
IMG.SRC="CheckCodeServlet?"+NeuDate().getTime();
}
</Drehbuch>
</TD>
</tr>//验证码拼接部分Öffentliche KlasseCheckCodeServleterweitert sichHttpServlet{
@Override
Öffentlicher LeerraumdoGet(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)WürfeServletException, IOException{
//Der Server informiert den Browser, dass er nicht cachen soll
response.setHeader("Pragma","No-Cache"); response.setHeader("Cache-Kontrolle","No-Cache"); response.setHeader("verfällt","0");
//Erschaffe eine lange Geschichte in der Erinnerung80, breit30Der Standard-schwarze Hintergrund
//Parameter 1: Länge
//Parameter 2: Breite
//Parameter 3: Farbe
IntBreite =80;
IntHöhe =30; BuffertedImage-Bild =NeuBufferedImage(Breite, Höhe, Gepuffertes Bild.TYPE_INT_RGB);
//Hol die Bürste
Graphics g = image.getGraphics();
//Stelle die Pinselfarbe auf Grau ein
g.setColor(Farbe.GRAY);
//Füll das Bild aus
g.fillRect(0,0, Breite, Höhe);
//Produziert4Zufälligen Verifizierungscode,12Ey
String checkCode = getCheckCode();
//Gib den Code einHttpSessionMittel
request.getSession().setAttribute("Code",CheckCode);
//Stelle die Pinselfarbe auf Gelb ein
g.setColor(Farbe.GELB);
//Stellen Sie die Größe der Schriftart ein
g.setFont(NeuTaufbecken("Schwarzer Körper",Schriftart.KÜHN,24));
//Schreibe einen Verifikationscode auf das Bild
g.drawString(checkCode,15,25);
//Geben Sie das Bild aus dem Speicher in den Browser aus
//Parameter 1: Bildobjekt
//Parameter 2: Das Format des Bildes, wie zum Beispiel:PNG,JPG,GIF
//Parameter 3: Wo das Bild ausgegeben wird
ImageIO.schreib(Bild,"PNG",response.getOutputStream());
}
/**
*Produziert4Bit-Zufallsstring
*/
privatString getCheckCode() {
Saitenbasis ="0123456789ABCDEFGabcdefg";
IntGröße = Basis.Länge(); Zufällig r =NeuZufällig(); StringBuffer sb =NeuStringBuffer();
für(Inti=1; i<=4; i++){
//Produziert0AnGröße-1von Zufallswerten
Intindex = r.nextInt(Größe);
//beiBasisString get subscript alsIndexCharaktere
charc = base.charAt(Index);
//WillecSetzen Sie es einStringBufferGeh in die Mitte
sb.append(c);
}
Rückgabesb.toString();
}
@Override
Öffentlicher LeerraumdoPost(HttpServletRequest-Anfrage, HttpServletResponse-Antwort) WürfeServletException, IOException{
das.doGet(Anfrage, Antwort);
}
}
Wie erreicht man das?
|