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 tableauRemarque : 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()
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 :
public void setHeader(java.lang.String name, java.lang.String value)
10. Écrivez l'image dans le navigateur
im - l'image rendue à écrire.
formatName - Chaîne contenant le nom informel du format.
ImageIO.write(bi,"jpg",response.getOutputStream());
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!