<html页面>. .
<tr>
<TDclass="td_left">
<Etichettaper="check">CAPTCHA</Etichetta>
</TD>
<TDclass="td_right controllo">
<InputTipo="testo"id="check"nome="check"class="check">
<IMGsrc="checkCodeServlet"altezza="32px"alt=""onclick="changeCheckCode(Questo)">
<copioneTipo="testo/javascript">
//Eventi di click sull'immagine
FunzionechangeCheckCode(IMG) {
Secondo me.src="checkCodeServlet?"+NuovoData().getTimeTime();
}
</copione>
</TD>
</tr>//验证码拼接部分Classe pubblicaCheckCodeServletestendeHttpServlet{
@Override
Vuoto pubblicodoGet(Richiesta HttpServlet, risposta HttpServletResponse)LanciServletException, IOException{
//Il server informa il browser di non memorizzare in cache
response.setHeader("pragma","no-cache"); response.setHeader("controllo della cache","no-cache"); response.setHeader("scade","0");
//Crea'n una lunga nella memoria80, largo30Lo sfondo nero predefinito
//Parametro 1: Lunghezza
//Parametro 2: Larghezza
//Parametro 3: Colore
intlarghezza =80;
intaltezza =30; Immagine BufferedImage =NuovoBufferedImage(larghezza, altezza, immagine bufferata.TYPE_INT_RGB);
//Prendi il pennello
Graphics g = image.getGraphics();
//Imposta il colore del pennello su grigio
g.setColor(Colore.GRAY);
//Riempi il quadro
g.fillRect(0,0, larghezza, altezza);
//Prodotto4codice di verifica casuale,12Ey
Stringa checkCode = getCheckCode();
//Inserisci il codiceHttpSessionMedio
request.getSession().setAttribute("codice",checkCode);
//Imposta il colore del pennello su giallo
g.setColor(Colore.GIALLO);
//Imposta la dimensione del font
g.setFont(NuovoFonte("Corpo nero",Font.AUDACE,24));
//Scrivi un codice di verifica sull'immagine
g.drawString(checkCode,15,25);
//Invia l'immagine dalla memoria al browser
//Parametro 1: Oggetto immagine
//Parametro 2: Il formato dell'immagine, ad esempio:PNG, JPG, GIF
//Parametro 3: Dove viene prodotta l'immagine
ImageIO.scrivi(Immagine,"PNG",risposta.getOutputStream());
}
/**
*Prodotto4Stringa casuale di bit
*/
PrivatoStringa getCheckCode() {
Base della stringa ="0123456789ABCDEFGabcdefg";
intdimensione = base.lunghezza(); Casuale r =NuovoCasuale(); StringBuffer sb =NuovoStringBuffer();
per(inti=1; i<=4; i++){
//Prodotto0ATaglia-1di valori casuali
intindice = r.nextInt(grandezza);
//aBasestringa get subscript comeindicepersonaggi
Charc = base.charAt(indice);
//volontàcInserisciStringBufferVai al centro
sb.append(c);
}
Ritornosb.toString();
}
@Override
Vuoto pubblicodoPost(Richiesta HttpServlet, risposta HttpServletResponse) LanciServletException, IOException{
Questo.doGet(richiesta, risposta);
}
}
Come si ottiene questa possibilità?
|