Jeder kennt den Verifizierungscode und ich muss nicht mehr über seine Funktion sagen. Wenn Sie nicht sehr klar sind, lesen Sie bitte die Erklärung in Baidu Encyclopedia. Im Allgemeinen besteht die Erzeugung von Verifizierungscodes darin, zufällig Zeichen (Zahlen, Buchstaben oder chinesische Zeichen usw.) zu generieren, diese erzeugten Zeichen in ein Bild zu zeichnen und dann einige störende Elemente zum Bild hinzuzufügen, wie z.
Einfache Anmeldeseite (der Code ist nicht vollständig, nur der Bestätigungscode -Teil)
<%@ page Language = "java" import = "java.util. data-filtered = "filtered"> </span> <span style = "White-Space: pre"> </span> // js Funktion zum Aktualisieren des Verifizierungscodes <span style = "White-Space: PRE"> </span> Funktion echnameCode () {<span style = "White-Space: Pre"> </span> var imgnode = document.GetelementByid ("vimg". <span style = "White-Space: PRE"> </span> // den Verifizierungscode neu laden, um den Zweck des Aktualisierens <span style = "White-Space: pre"> </span> imgnode.src = "Servlet/AuthimageServlet? T =" + Math.Random (); // Browser-Cache-Probleme verhindern. src = "servlet/authimageServlet"> <br/> <Eingabe type = "sure" value = "subieren"> </form> </body> </html>Durch Session.getAttribute ("Rand") wird der generierte Verifizierungscode erhalten und dann mit der Benutzereingabe verglichen, und dann wird die entsprechende Verarbeitung basierend auf den Vergleichsergebnissen durchgeführt.
Generieren Sie den Verifizierungscode über Servlet:
Paket com.util.servlet; Import Java.awt.Color; import Java.awt.font; importieren java.awt.graphics; Import Java.awt.image.BuffenedImage; importieren java.io.ioException; import Java.util.random; import Javax.imageo.imageo; importieren javax.servlet.servletException; import Javax.servlet.http.httpServlet; importieren javax.servlet.http.httpServletRequest; importieren javax.servlet.http.httpServletResponse; import Javax.servlet.http.httpSession; public class authimageServlet erweitert HttpServlet {private statische String -String content_type = "text/html; charSet = gb2312"; // Setzen Sie die Größe der Buchstaben, private Schriftart mfont = new Font ("Times New Roman", Font.plain, 17); public void init () löscht servletException {super.init (); } Color getrandcolor (int fc, int bc) {random 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); int b = fc+random.nextint (bc-fc); Neue Farbe zurückgeben (r, g, b); } public void Service (httpServletRequest-Anfrage, httpServletResponse-Antwort) löst ServletException aus, ioException {response.setheader ("pragma", "no-cache"); response.setheader ("cache-control", "no-cache"); response.setDateHeader ("läuft", 0); // Geben Sie an, dass die generierte Antwort die Bildantwort ist. int width = 100, Höhe = 18; Bufferedimage image = new bufferedImage (width, Höhe, bufferedimage.type_int_rgb); Grafik g = image.getGraphics (); Random random = new random (); G.SetColor (GetRandcolor (200, 24, 250)); G.FillRect (1, 1, Breite-1, Höhe-1); G.SetColor (neue Farbe (102,102,102)); g.drawrect (0, 0, width-1, Höhe-1); g.setfont (mfont); G.SetColor (getrandcolor (160.200)); // zeichne eine zufällige Zeile für (int i = 0; i <155; i ++) {int x = random.nextint (width - 1); int y = random.nextint (Höhe - 1); int xl = random.nextint (6) + 1; int yl = random.nextint (12) + 1; g.drawline (x, y, x + xl, y + yl); } // Zeichnen Sie eine zufällige Zeile aus der anderen Richtung für (int i = 0; i <70; i ++) {int x = random.Nextint (width - 1); int y = random.nextint (Höhe - 1); int xl = random.nextint (12) + 1; int yl = random.nextint (6) + 1; g.drawline (x, y, x - xl, y - yl); } // Zufallsnummern generieren und Zufallszahlen in Buchstaben umwandeln String srand = ""; für (int i = 0; i <6; i ++) {int itmp = random.nextint (26)+65; char ctmp = (char) itmp; srand += string.Valueof (ctmp); G.SetColor (neue Farbe (20+random.Nextint (110), 20+random.Nextint (110), 20+random.Nextint (110))); g.drawstring (String.Valueof (ctmp), 15*i+10,16); } HttpSession Session = Request.GetSession (true); Session.SetAttribute ("Rand", Srand); g.disponse (); Imageio.Write (Bild, "JPEG", response.getOutputStream ()); }}Servlet -Konfigurationsinformationen in web.xml:
<? XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name <servlet-classe> com.util.servlet.AuthimageServlet </Servlet-Klasse> </Servlet> <Servlet-Mapping> <Servlet-Name> AuthimageServlet </Servlet-name> <url-pufter>/servlet/authimageServlet </url-patter> </servlet-mapping> <willkommen> <willkommen> <willkommen> <willkommen> <willkommen> <willkommen-file> <Welcome-file> <Welcome-file> <Welcome-file> <willkommen> <willkommen> <Welcome-file> <willkommen> <willkommen> <willkommen> <willkommen> <willkommen-file> <Welcome-file> <Welcome-file> <willkommen> <willkommen> <willkommen> <willkommen-file> <willkommen-file> <willkommen> <willkommen-file </Welcome-File-List> </web-App>
Auf diese Weise wird die Funktion des Verifizierungscodes implementiert, was sehr einfach und praktisch ist. Natürlich gibt es schönere und strengere Möglichkeiten. Interessierte Freunde können ausführlich lernen. Hier werde ich relativ einfach mit Ihnen teilen. Alle sind herzlich eingeladen, mich zu kritisieren und zu korrigieren.
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.