Maison  >  Article  >  Java  >  Analyse des étapes détaillées pour générer du code de vérification en Java

Analyse des étapes détaillées pour générer du code de vérification en Java

Y2J
Y2Joriginal
2017-05-03 14:03:291821parcourir

Cet article présente principalement en détail le résumé des étapes pour générer du code de vérification en Java. Les amis qui en ont besoin peuvent s'y référer

1. Le mécanisme de sérialisation de Java vérifie la cohérence des versions en déterminant le serialVersionUID de la classe au moment de l'exécution.

    private static final long serialVersionUID = -8501285780349046114L;

C'est l'équivalent de la carte d'identité Java. Principalement utilisé pour le contrôle de version.

2. Classe BufferedImage

- La sous-classe BufferedImage décrit une image avec un tampon de données d'image accessible.

TYPE_INT_RGB

Représente une image comportant des composants de couleur RVB 8 bits synthétisés en pixels entiers.

——getGraphics()

Cette méthode renvoie Graphics2D, mais c'est pour des raisons de compatibilité ascendante.

3. request.getParameter()

Les données transmises par la méthode request.getParameter() seront transmises du client Web au serveur Web , représentant les données de la requête HTTP.

La méthode request.getParameter() renvoie des données de type String.

4. String...

excludeProperty représente des paramètres variables, c'est-à-dire que plusieurs objets String peuvent être transmis lors de l'appel de cette méthode (paramètres variables : convient lorsque le nombre de paramètres est incertain , lorsque le type est déterminé, java traite les paramètres de la variable comme un tableau

Remarque : les paramètres de la variable doivent être situés dans le dernier élément, par exemple : private String drawRandomNum(Graphics2D g,String... createTypeFlag))

5. Classe Graphics

La classe Graphics est la classe de base abstraite pour tous les contextes graphiques, permettant aux applications d'effectuer des opérations sur des composants (déjà implémentés sur divers appareils) et hors -images d'écran dessiner.

【Étapes】 :


1. Créez une image en mémoire


 ——La sous-classe BufferedImage décrit une image avec un tampon de données d'image accessible.   

  BufferedImage bi = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);

   TYPE_INT_RGB Représente une image comportant des composants de couleur RVB 8 bits synthétisés en pixels entiers.

——getGraphics()

Cette méthode renvoie Graphics2D, mais c'est pour des raisons de compatibilité ascendante.


2. Obtenez l'image

3. Définissez la couleur d'arrière-plan de l'image

        Graphics g = bi.getGraphics();


4, définissez la bordure de l'image ;

        setBackGround(g);


5. Dessinez des lignes d'interférence sur l'image

        setBorder(g);


6. Écrivez des nombres aléatoires dessus ; l'image ;

        drawRandomLine(g);


7. Stockez le nombre aléatoire dans la session

        String random = drawRandomNum((Graphics2D) g,createTypeFlag);//根据客户端传递的createTypeFlag


8. Définissez l'en-tête de réponse pour informer le navigateur de l'ouvrir ; sous forme d'image ;

        request.getSession().setAttribute("checkcode",random);


9. Définissez l'en-tête de réponse pour contrôler que le navigateur ne mette pas en cache

        response.setContentType("image/jpeg");//等同于res[onse.setHeader("Content-Type","image/jpeg");

——setDateHeader name - le nom de l'en-tête ; set

  response.setDateHeader("expries",-1);
  response.setHeader("Cache-Control","no-cache");
  response.setHeader("Pragma","no-cache");

date - la valeur de date attribuée

    public void setDateHeader(java.lang.String name,long date)

——setHeader


Paramètres :


nom - le nom de l'en-tête


valeur - la valeur de l'en-tête S'il contient une chaîne d'octets, il doit être codé conformément à la RFC 2047 (http: //www.ietf.org/ rfc/rfc2047.txt)
            public void setHeader(java.lang.String name, java.lang.String value)


10. Écrivez l'image dans le navigateur


——Paramètres :

im - l'image rendue à écrire.
        formatName - Chaîne contenant le nom informel du format.

        ImageIO.write(bi,"jpg",response.getOutputStream());
Output -OutputStream sera écrit dans les données.


      


IOException - si une erreur se produit lors de l'écriture.  

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn