Fungsi kode verifikasi: Biasanya, saat masuk atau mendaftarkan sistem, pengguna akan diminta untuk memasukkan kode verifikasi untuk membedakan perilaku pengguna dari perilaku program komputer. Tujuannya adalah untuk mencegah pendaftaran berbahaya, perekam kata sandi brute-force, dll.
Gagasan untuk mengimplementasikan kode verifikasi: Gunakan server untuk mewujudkan fungsi pembuatan angka dan huruf secara acak untuk membentuk gambar, menggunakan halaman JSP untuk mewujudkan fungsi menampilkan kode verifikasi dan kode verifikasi input pengguna, dan kemudian menggunakan kelas server untuk mendapatkan input data dengan gambar dan pengguna untuk menentukan apakah kedua data tersebut konsisten.
Implementasi Kode
1. Tulis kelas server yang dihasilkan secara acak dalam angka dan bahasa Inggris, kode sumber:
Paket com; impor java.awt.color; impor java.awt.font; impor java.awt.graphics; impor java.awt.image.bufferedImage; import java.io.bytearrayoutputstream; impor java.io.ioException; impor java.io.prinputstream; impor java.io.ioExcept; javax.servlet.servletException; import javax.servlet.servletoutputStream; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.htpservetRequest; javax.servlet.http.httpsession; LogCheck kelas publik memperluas httpservlet {public logcheck () {super (); } public void hancur () {super.destroy (); } public void doGet (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {dopost (permintaan, respons); }/*Kode inti implementasi*/public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {response.setContentType ("Image/JPEG"); Httpsession sesi = request.getSession (); Int Width = 60; tinggi int = 20; // atur browser untuk tidak men-cache response gambar ini.setHeader ("pragma", "no-cache"); response.setheader ("cache-control", "no-cache"); response.setDateheader ("kedaluwarsa", 0); // Buat gambar memori dan dapatkan konteks grafis gambar bufferedImage = BufferedImage baru (lebar, tinggi, bufferedImage.type_int_rgb); Grafik g = image.getGraphics (); /** Menghasilkan kode verifikasi acak* tabel karakter yang mendefinisikan kode verifikasi*/ string chars = "0123456789AbcDefghijKlMnopqrStuvwxyz"; char [] rands = char baru [4]; untuk (int i = 0; i <4; i ++) {int rand = (int) (math.random () *36); rands [i] = chars.charat (rand); } /** Hasilkan gambar* Gambar latar belakang* / g.setColor (warna baru (0xdcdcdc)); g.fillrect (0, 0, lebar, tinggi); /** Secara acak menghasilkan 120 titik interferensi*/ untuk (int i = 0; i <120; i ++) {int x = (int) (math.random ()* lebar); int y = (int) (math.random ()*tinggi); int red = (int) (math.random ()*255); int green = (int) (math.random ()*255); int blue = (int) (math.random ()*255); g.setColor (warna baru (merah, hijau, biru)); G.Drawoval (x, y, 1, 0); } g.setColor (color.black); g.setfont (font baru (null, font.italic | font.bold, 18)); // output karakter verifikasi yang berbeda pada ketinggian berbeda g.drawstring (""+rands [0], 1, 17); G.DrawString (""+Rands [1], 16, 15); G.DrawString (""+Rands [2], 31, 18); G.DrawString (""+Rands [3], 46, 16); g.dispose (); // Tempel gambar ke klien servleToutputStream sos = response.getoutputStream (); BytearrayoutputStream baos = new bytearrayoutputStream (); Imageo.write (Image, "JPEG", Baos); byte [] buffer = Baos.tobyTeArray (); response.setContentLength (buffer.length); Sos.write (buffer); baos.close (); sos.close (); session.setAttribute ("checkCode", string baru (rands)); } public void init () melempar servletException {// letakkan kode Anda di sini}} 2. Halaman yang digunakan untuk menampilkan kode verifikasi :
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%string path = request.getContextPath (); string basepath = request.getscheme ()+": //"+request.getServername ()+":"+request.getserverport ()+PATPERPORT.POCPY ";"; "+": "+"+"+"; "+"; "+"; "+"; "+"; "+"; "+"; "publporpy ();"+";"+";"+";" publport ";"); "+"; "+"; docty/doctypath (): "+request. "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>index</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <Form Action = "yanzheng" metode = "post"> <input type = "text" name = "name" size = "5" maxlength = "4"> <a href = "index.jsp"> <img src = "logcheck"> </a> <br> <br> <input type = "kirim" value = "kirim"> </a> <br> <input type = "kirim" value = "kirim">
3. Digunakan untuk memeriksa apakah kode verifikasi yang dimasukkan benar:
Paket com; impor java.io.ioException; import java.io.printwriter; impor javax.jms.Session; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservet; javax.servlet.http.httpservletResponse; import javax.servlet.http.httpsession; import javax.servlet.http.httpsession; kelas publik yanzheng memperluas httpservlet {public yanzheng () {supers); } public void hancur () {super.destroy (); } public void doGet (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {dopost (permintaan, respons); } /*Kode inti* / public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {string info = null; /*Dapatkan nilai input*/ string value1 = request.getParameter ("name"); /*Dapatkan nilai gambar*/ httpsession sesi = request.getSession (); String value2 = (string) session.getAttribute ("checkCode"); /*Bandingkan dua nilai (huruf tidak sensitif)*/ if (value2.equalsignorecase (value1)) {info = "Input kode verifikasi benar"; } else {info = "kesalahan input kode verifikasi"; } System.out.println (info); request.setAttribute ("info", info); request.getRequestDispatcher ("/login.jsp"). Maju (permintaan, respons); } public void init () melempar servletException {// letakkan kode Anda di sini}}4. Tampilkan antarmuka struktur input (apakah kode verifikasi input benar):
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%string path = request.getContextPath (); string basepath = request.getscheme ()+": //"+request.getServername ()+":"+request.getserverport ()+PATPERPORT.POCPY ";"; "+": "+"+"+"; "+"; "+"; "+"; "+"; "+"; "+"; "publporpy ();"+";"+";"+";" publport ";"); "+"; "+"; docty/doctypath (): "+request. "-// w3c // dtd html 4.01 transisi // en"> <html> <head> <base href = "<%= Basepath%>"> <itement> login.jsp 'jsp-compa "</titlet> <Meta http-equiv =" pragma "content =" no-cache "tidak ada cacan" no-Cache "contache </meta http-equiv =" pragma "content =" no-cache "no-cache" no-cache "no-cache" no-Cache "no-Cache" no-cache " content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href = "styles.css"> -> </head> <body> < %= request.getAttribute ("info") %> </body> </html>5. Struktur proyek dan screenshot efek:
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.