Cet article partage le code spécifique du code de vérification de connexion de l'implémentation Java pour votre référence. Le contenu spécifique est le suivant
1. ValidateCode.java
Importer java.awt.color; import java.awt.font; import java.awt.graphics; import java.awt.image.bufferedImage; import java.io.ioexception; import java.io.outputstream; import java.util.random; import javax.imageio.imageio; import java.uservlet.serverExplet; ImportExpree; org.springframework.sterreotype.service; / ** * Code de vérification de connexion * * / classe publique validatecode {/ ** * Obtenez l'image du code de vérification * @param out * @param numéro de vérification du numéro * @throws servlexception * @throws ioexception * / public Void getImage (sortStream out, string nombre) lacets servletException, ioexception {0. Créer une image vierge BufferedImage Image = new BufferedImage (100,30, BufferedImage.Type_int_rgb); // 1. Obtenez les graphiques Brush Image G = Image.getGraphics (); Random r = new Random (); // 2. Réglez la couleur du pinceau (NextInt (n) dans la classe aléatoire renvoie un nombre aléatoire supérieur ou égal à 0 et inférieur à n) g.setColor (nouvelle couleur (R.Nextint (255), R.Nextint (255), R.Nextint (255))); // 3. Dessinez l'arrière-plan du rectangle G.Fillrect (0, 0, 100, 30); // 4. Appelez une méthode personnalisée pour obtenir la chaîne de combinaisons alphanumériques de longueur 4 g.setColor (nouvelle couleur (0,0,0)); g.setfont (new Font (null, font.bold, 24)); // 5. Après avoir réglé la police de couleur, dessinez la chaîne (x / y, la position du caractère le plus à gauche) G.Drawstring (numéro, 20, 24); // 6. Dessiner 8 lignes d'interférence (Alpha signifie la transparence) pour (int i = 0; i <8; i ++) {g.setColor (New Color (R.Nextint (255), R.Nextint (255), R.Nextint (255), R.Nextint (255))); G.Drawline (R.Nextint (100), R.Nextint (30), R.Nextint (100), R.Nextint (30)); } Imageo.write (image, "jpeg", out); } // Méthode personnalisée pour obtenir la chaîne de combinaisons alphanumériques de la taille de la longueur publique GetNumber (int size) {String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Chaîne numéro = ""; Random r = new Random (); pour (int i = 0; i <size; i ++) {nombre + = str.charat (r.Nextint (str.length ())); } numéro de retour; }}2. Contrôleur
@Requestmapping (value = "/check",method={requestMethod.get}) @ResponseBody public void check (httpServletRequest req) {try {httpservletResponse réponse = this.getResponse (); Response.SetContentType ("Application / Octet-Stream"); Response.Addheader ("Content-Disposition", "attachement; filename =" + "vCode.jpeg"); Numéro de chaîne = validatecode.getNumber (4); validateCode.getImage (réponse.getOutputStream (), numéro); } catch (exception e) {}}3. HTML
<img src = "http://127.0.0.1:8080/test/check">
Diagramme de reproduction
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.