1. Pendahuluan
Kode verifikasi dapat dikatakan sangat umum dalam hidup kita. Situs web atau aplikasi apa pun akan memiliki fungsi ini, tetapi mengapa Anda membutuhkan ini? Bagaimana cara melakukannya? Di bawah ini, editor akan membuat semua orang menggunakan Java untuk menyelesaikan fungsi kode verifikasi.
2. Fungsi kode verifikasi
Secara umum, ia dapat mencegah orang menggunakan robot untuk secara otomatis mendaftar dalam batch dan terus masuk ke pengguna terdaftar tertentu menggunakan program spesifik untuk metode perekam perkelahian brute. Karena kode verifikasi adalah gambar yang mencampur angka dan simbol, terlihat sulit bagi mata manusia untuk dikenali, dan bahkan lebih sulit untuk dikenali mesin.
3. Implementasi Java
3.1 Tetapkan kelas servlet untuk kode verifikasi:
Paket com.bjpowernode.drp.util.servlet; impor java.awt.color; import java.awt.font; impor java.awt.graphics; impor java.awt.image.bufferedimage; import java.io.ioException; impor java.util.randomage; impor; javax.servlet.servletException; import javax.servlet.http.httpservlet; impor javax.servlet.http.httpservletrequest; impor javax.servlet.htp.htpservletResponse; impor javax.servlet @Author ares * */Authimage kelas publik memperluas httpservlet {private static final string content_type = "text/html; charset = gb2312"; // Atur ukuran huruf, ukuran font pribadi mfont = font baru ("Times New Roman", font.plain, 17); public void init () melempar servletException {super.init (); } Warna getRandColor (int fc, int bc) {acak acak = acak baru (); 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); mengembalikan warna baru (r, g, b); } public void service (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {response.setHeader ("pragma", "no-cache"); response.setheader ("cache-control", "no-cache"); response.setDateheader ("kedaluwarsa", 0); // menunjukkan bahwa respons yang dihasilkan adalah respons gambar.setContentType ("Image/JPEG"); Lebar int = 100, tinggi = 18; BufferedImage Image = BufferedImage baru (lebar, tinggi, bufferedImage.type_int_rgb); Grafik g = image.getGraphics (); Acak acak = acak baru (); G.SetColor (GetRandColor (200.250)); g.fillrect (1, 1, lebar-1, tinggi-1); G.SetColor (warna baru (102.102.102)); G.Drawrect (0, 0, lebar-1, tinggi-1); g.setfont (mfont); G.SetColor (GetRandColor (160.200)); // Gambarlah garis acak untuk (int i = 0; i <155; i ++) {int x = random.nextInt (lebar - 1); int y = random.nextInt (tinggi - 1); int xl = random.nextInt (6) + 1; int yl = random.nextInt (12) + 1; G.Drawline (x, y, x + xl, y + yl); } // Gambar garis acak dari arah lain untuk (int i = 0; i <70; i ++) {int x = random.nextInt (lebar - 1); int y = random.nextInt (tinggi - 1); int xl = random.nextInt (12) + 1; int yl = random.nextInt (6) + 1; G.Drawline (x, y, x - xl, y - yl); } // menghasilkan angka acak dan mengonversi angka acak menjadi huruf string srand = ""; untuk (int i = 0; i <6; i ++) {int itmp = random.nextInt (26)+65; char ctmp = (char) itmp; srand += string.valueof (ctmp); g.setColor (warna baru (20+acak.nextint (110), 20+random.nextint (110), 20+acak.nextint (110))); G.DrawString (String.ValueOf (CTMP), 15*I+10,16); } Httpsession session = request.getSession (true); session.setAttribute ("rand", srand); g.dispose (); Imageo.write (gambar, "jpeg", response.getoutputStream ()); } public void dashar () {}}3.2 Mengkonfigurasi Servlet di Web.xml Di Bawah File Web-Inf
// SERVLET NAMA DAN LOKASI <REVERLET> <Servlet-name> AuthImage </servlet-name> <servlet-class> com.bjpowernode.drp.util.servlet.authimage </servlet-class> </servlet> // Servlet bekerja pada pemetaan <servlet-Mapping> </servlet </servlet </servlet </servlet </servlet </servlet </servlet </servlet </servlet </Name </Name </Name </Name </Name </Name </Name </Name </Name </Name </Name </Name </Name </Name </Name </name </name </name </name </name </name </name </name </name </name </name </name </ <rerl-pola>/servlet/login/authimage </url-pola> </servlet-Mapping>
3.3 Meja Depan Menelepon Servlet
Kode JSP:
<img id = "img" style = "kursor: pointer;" src = "$ {pageContext.Request.contextPath}/servlet/login/authimage" onClick = "changeimg ()">JS:
// Klik kode verifikasi untuk mengubah fungsi gambar perubahan () {var img = document.getElementById ("img"); img.src = "$ {pagecontext.Request.contextPath}/servlet/login/authimage? D ="+Math.random (); mengembalikan false;}4. Ringkasan
Melalui pembelajaran kode verifikasi ini, saya juga telah mendapatkan pemahaman tertentu tentang interaksi antara seluruh servlet dan kode front-end, dan transmisi data juga telah sangat ditingkatkan. Karena itu, saya masih perlu belajar lebih banyak tentang keterampilan ini dan merangkumnya di masa depan. Hanya dengan cara ini pengetahuan itu bisa solid.
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.