Dieses Beispiel teilt den spezifischen Code von Java zufällig generierten Verifizierungscode für Ihre Referenz. Der spezifische Inhalt ist wie folgt
Import Java.awt.Color; Import Java.awt.font; Import Java.awt.graphics2d; Import Java.awt.image.BuffeedImage; Import Java.io.ioException; Import Java.util.random; javax.servlet.servletoutputStream; import Javax.servlet.http.httpServlet; import Javax.servlet.http.httpServletRequest; importieren javax.servlet.http.httpletresponse; {/ *** Konstruktor des Objekts.*/ Public Randimage () {Super (); } private int imgwidth = 0; // Bildbreite private int imgHeight = 0; // Bildhöhe private int codeCount = 0; // die Anzahl der Zeichen im Bild privat int x = 0; privat int fonttheight; // die Höhe der Schriftart privat int Codey; private String FontStyle; // Schriftstil // Serialisierungs -ID meiden Sie doppelte private statische statische lange Serialversionuid = 128554012633034503L; /*** Initialisierungskonfigurationsparameter*/public void init () löscht servletException {// Breite String strWidth = "200" aus; // Höhenzeichenfolge StrHeight = "80"; // Anzahl der Zeichen String StrCodeCount = "5"; // font fontStyle = "Times New Roman"; // Die konfigurierten Informationen in einen numerischen Versuch konvertieren {if (strWidth! = Null && strWidth.length ()! } if (strHeight! = null && strHeight.length ()! } if (strCodeCount! = null && strCodeCount.length ()! }} catch (numberFormatexception e) {e.printstacktrace (); } x = imgwidth / (CodeCount + 1); // Charakterabstand fontHeight = imgheight - 2; // Schrifthöhe codey = imgHeight - 12; // Codehöhe} Protected void processRequest (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, IOException {// Ausgabe Stream Set Response.SetContentType ("Image/JPEG"); // Ausgabeformat response.setheader ("pragma", "no-cache"); // Keine Response regenerieren. // keine regenerate response.setdatheader ("abläuft", 0); // Keine Cache -Invalidierung ist auch nicht zwischen HttpSession Session = Request.GetSession () zwischengespeichert. // Sitzungssitzung abrufen // Bild im Speicher bufferedimage image = new bufferedImage (imgwidth, imgHeight, bufferedImage.type_int_rgb); // Erhalten Sie den grafischen Kontext Graphics2d g = Bild.CreateGraphics (); // random randial randal random = new random () erzeugen; // Zufallsklasse // die Hintergrundfarbe des Rechtecks G.SetColor (color.white) festlegen; // Füllen Sie das Rechteck -Rechteck auf weiße G.FillRect (0, 0, Imgwidth, ImgHeight); // Setzen Sie die Grenze -Schriftart G.Setfont (neue Schriftart (fontStyle, font.plain + font.italic, fontHeight)); // Setzen Sie die Randfarbe G.SetColor (neue Farbe (55, 55, 12)); // Zeichnen Sie den Grenze G.Drawrect (0, 0, imgwidth - 1, imgheight - 1); // Erzeugen Sie zufällig 160 Interferenzleitungen, wodurch der Authentifizierungscode im Bild nicht einfach ist, von anderen Programmen G.SetColor (getRandcolor (160, 200)) zu erkennen; für (int i = 0; i <160; i ++) {int x = random.nextint (imgwidth); int y = random.nextint (imgHeight); int xl = random.nextint (12); int yl = random.nextint (12); g.drawline (x, y, x + xl, y + yl); } // Nehmen Sie den zufällig generierten Authentifizierungscode (4-Grad-Nummer) String srand = ""; int rot = 0, grün = 0, blau = 0; für (int i = 0; i <codeCount; i ++) {// Änderung, um CodeCount -Zufällungen zu generieren. grün = random.nextint (255); Blue = random.Nextint (255); // Geschichten, um eine Anzahl von 0 1 2 int WordType = random.Nextint (3); // Geschichten zu 3 Zahlen zwischen 0-2 char Retword = 0; // 0 Nummer 1 Kleinbuchstaben 2 Kapitalbuchstabenschalter (WordType) {case 0: retword = this.getSingLenumberchar (); // die char-type-Pause von 0-9 erhalten; Fall 1: retword = this.getlowerorupperchar (0); // Holen Sie sich die Unterbrechung des Kleinbuchstabens; Fall 2: retword = this.getlowerorupperchar (1); // Holen Sie sich die Großbuchstabenpause im Großbuchstaben; } srand += string.Valueof (retword); // Erhalten Sie die erhaltenen zufälligen Zeichen G.SetColor (neue Farbe (rot, grün, blau); // Setzen Sie eine Farbe g.drawstring (string.Valueof (retword), 2+ (i) * x, cody); // Schreiben Sie die Zeichen in die entsprechende Position im Bild} // Speichern Sie den Authentifizierungscode in Sitzungssitzung. // Speichern Sie die erhaltenen zufälligen Zeichen in der Sitzungsantwort, und Sie können // das Bild aufrufen, wirkt sich auf g.dispose (); // Geben Sie das G -Objekt -ServletOutputStream -ResponseOutputStream = response.getOutputStream () frei; // Ausgabe von Stream // Image auf das Seiten -ImageIO.Write (Bild, "JPEG", ResponseOutputStream); // Ausgabe im JPEG -Format // Schließen Sie den folgenden Eingangsstrom! ResponseOutputStream.flush (); // frisch und schließen den Stream responseOutputStream.close (); } Color getrandcolor (int fc, int bc) {// Geben Sie eine zufällige Farbe Random = new random (); if (fc> 255) fc = 255; if (bc> 255) bc = 255; int r = fc + random.nextint (bc - fc); int g = fc + random.nextint (bc - fc); int b = fc + random.nextint (bc - fc); Neue Farbe zurückgeben (r, g, b); } Protected void dodget (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, ioException {processRequest (request, response); } Protected void dopost (httpServletRequest Request, httpServletResponse -Antwort) löst ServletException aus, ioException {processRequest (request, response); } // eine Ganzzahl -Zufallsnummer in char konvertieren, um private char GetSingLenumberchar () {random random = new randal () zurückzugeben; int numberResult = random.nextint (10); int ret = numberResult + 48; // beim Konvertieren von Zeichen '0' in Ascall Code ist es 48 return (char) ret; } // 26 Zeichen privat char getlowerorupperchar (int obere) {randal random = new Random (); int numberResult = random.nextint (26); int ret = 0; if (ober == 0) {// Kleinbuchstaben ret = numberResult + 97; } else if (ober == 1) {// Capital ret = numberResult + 65; } return (char) ret; }} Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.