<html页面>. .
<tr>
<TDclasse=« td_left »>
<Labelpour=« Check »>CAPTCHA</Label>
</TD>
<TDclasse=« td_right vérifié »>
<Entréetype=« texte »id=« Check »nom=« Check »classe=« Check »>
<IMGsrc=« checkCodeServlet »Taille=« 32px »alt=""onclick="changeCheckCode(Ceci)">
<Scripttype=« texte/javascript »>
//Événements de clics d’image
FonctionchangeCheckCode(IMG) {
D’après mon avis.SRC=« checkCodeServlet ? »+NouveauDate().getTimeTime();
}
</Script>
</TD>
</tr>//验证码拼接部分Classe publiqueCheckCodeServlets’étendHttpServlet{
@Override
Vierge publicdoGet(HttpServletRequest request, HttpServletResponse réponse réponse)LancersServletException, IOException{
//Le serveur informe le navigateur de ne pas mettre en cache
response.setHeader(« pragma »,« No-cache »); response.setHeader(« contrôle de cache »,« No-cache »); response.setHeader(« expire »,"0");
//Crée-en un long en mémoire80, large30Le fond noir par défaut
//Paramètre 1 : Longueur
//Paramètre 2 : Largeur
//Paramètre 3 : Couleur
intlargeur =80;
inthauteur =30; Image tampon =NouveauImage tampon(largeur, hauteur, image tamponnée.TYPE_INT_RGB);
//Prends la brosse
Graphiques g = image.getGraphics();
//Réglez la couleur du pinceau sur gris
g.setColor(Couleur.GRIS);
//Remplissez le tableau
g.fillRect(0,0, largeur, hauteur);
//Production4code de vérification aléatoire,12Ey
Chaîne checkCode = getCheckCode();
//Entrez le codeHttpSessionDouleur moyenne
request.getSession().setAttribute(« Code »,vérifierCode);
//Réglez la couleur du pinceau sur jaune
g.setColor(Couleur.JAUNE);
//Définir la taille de la police
g.setFont(NouveauPolice("Corps noir",Police.AUDACIEUX,24));
//Écrivez un code de vérification sur l’image
g.drawString(checkCode,15,25);
//Envoyez l’image de la mémoire vers le navigateur
//Paramètre 1 : Objet image
//Paramètre 2 : Le format de l’image, tel que :PNG, JPG, GIF
//Paramètre 3 : Où l’image est sortie
ImageIO.Écrire(image,« PNG »,response.getOutputStream());
}
/**
*Production4Chaîne aléatoire de bits
*/
PrivéChaîne getCheckCode() {
Base de la chaîne =« 0123456789ABCDEFGabcdefg »;
inttaille = base.longueur(); Aléatoire r =NouveauAléatoire(); StringBuffer sb =NouveauStringBuffer();
pour(inti=1; i<=4; i++){
//Production0ÀTaille 1de valeurs aléatoires
intindex = r.nextInt(taille);
//àBasechaîne get subscript commeindexPersonnages
Charc = base.charAt(index);
//volontécMetsStringBufferVa au milieu
sb.append(c);
}
Retoursb.toString();
}
@Override
Vierge publicdoPost(HttpServletRequest request, HttpServletResponse réponse réponse) LancersServletException, IOException{
Ceci.doGet(Demande, réponse);
}
}
Comment y parvenir ?
|