1. العملية الأساسية:
قم بإنشاء صفحة رمز التحقق (صغيرة جدًا) → تم تضمينها في النموذج → انقر لتحديث الصفحة → تحقق من إرسال النموذج.
2. الطريقة:
1. تحديد طريقة الاختبار وتنفيذ طرق الرسم
حزمة com.zhuguang.action ؛ استيراد java.awt.color ؛ استيراد java.awt.font ؛ استيراد java.awt.graphics ؛ استيراد java.awt.image.bufferedImage ؛ استيراد java.util.map ؛ استيراد javax.servlet.http.httpservletresponse ؛ استيراد org.apache.struts2.Interceptor.ServletResponsearware ؛ استيراد org.apache.struts2.Interceptor.SessionAware ؛ استيراد com.opensymphony.xwork2.actionsupport ؛ استيراد com.sun.image.codec.jpeg.jpegcodec ؛ استيراد com.sun.image.codec.jpeg.jpegimageencoder ؛ يمتد اختبار الفئة العامة الإجراءات التي تدعمها SessionAware ، ServletResponseAware {Private Map <String ، Object> Session ؛ استجابة خاصة httpservletresponse ؛ خاص ثابت نهائي طويل المسبانيويد = 1L ؛ سلسلة خاصة chknumber. Override Public String Execute () يلقي الاستثناء {reponse.setheader ("Cache-Control" ، "NO-Cache") ؛ عرض int = 50 ؛ // عرض الصورة ارتفاع = 20 ؛ // صورة ارتفاع الصورة bufferedImage = جديد bufferedImage (العرض ، الارتفاع ، bufferedImage.type_int_rgb) ؛ رسومات الرسومات = image.creategraphics () ؛ Graphics.setColor (this.getColor ()) ؛ // خلفية ألوان الرسومات. Graphics.setfont (New Font ("Arial" ، font.bold ، 18)) ؛ Graphics.setColor (this.getColor ()) ؛ // لون رقم سلسلة الكلمة = string.valueof (System.CurrentTimeMillis () ٪ 9000+1000) ؛ // إنشاء جلسة أرقام عشوائية بأربعة بت ("RandomCode" ، الرقم) ؛ // اكتب إلى Session Graphics.drawString (رقم ، (int) (العرض*0.1) ، (int) (الارتفاع*0.8)) ؛ Graphics.Dispose () ؛ jpegimageencoder encoder = jpegcodec.createjpegencoder (reponse.getOutputStream ()) ؛ Encoder.encode (Image) ؛ استجابة. getOutputStream (). flush () ؛ // تحديث إلى الصفحة لإنشاء استجابة الصورة. getOutputStream (). // إغلاق الكاتب عودة لاغية ؛ } private color getColor () {int red = (int) (Math.Random ()*1000 ٪ 256) ؛ int green = (int) (Math.Random ()*1000 ٪ 256) ؛ int Blue = (int) (Math.Random ()*1000 ٪ 256) ؛ إرجاع لون جديد (أحمر ، أخضر ، أزرق) ؛ } السلسلة العامة getChknumber () {return chknumber ؛ } public void setChknumber (String chknumber) {this.chknumber = chknumber ؛ } Override public void setSession (Map <String ، Object> Session) {// todo method tuto method this.session = session ؛ } Override public void setSession (Map <String ، Object> Session) {// todo method tuto method this.session = session ؛ } override public void setServletResponse (httpservletresponse response) {// todo method method method this. response = response ؛ }}انتبه لاستخدام الجلسة والاستجابة
2. سجل في ملف struts.xml:
<Action Name = "RandomCode"> </usech>
لا يتم إرجاع أي معلومات ، حتى لا يتم إعادة توجيه الصفحة
3. كتابة صفحة JSSP
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <٪@ taglib uri = "/struts-tags" prefix = "s" s "٪> <s string path. String BasePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerPort ()+path+"/" ؛ ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3 <script type = "text/javaScript"> <!- function reloadcode (obj ، base) {var rand = new date (). getTime () ؛ // يتم استخدام الوقت الحالي كمعلمة إلى عنوان URL لتغيير عنوان URL ، بحيث يتم تحميل رمز التحقق ديناميكيًا. // إنه مجرد تأثير تداخل ، ليس له معنى ، لكنه ذكي للغاية. haha obj.src = base+"randomcode.action؟ abc ="+rand ؛ // في الواقع ، لا يوجد حقل ABC على جانب الخادم. } //-> </script> <العنوان> صفحة الاختبار </title> </head> <body> <body> <pongency action = "testlogin" method = "post"> اسم المستخدم <type type = "text" name = "name" src = "<٪ = basepath ٪> randomcode.action" id = "safecode" onClick = "ReloadCode (this ، '<٪ = basepath ٪>')"/> <br> <input type = "prident" value = "loginin"> </mod4. التحقق
(1) أضف طريقة التحقق في العمل
السلسلة العامة testlogin () {if (session.get ("RandomCode"). يساوي (chknumber)) {return success ؛ } آخر {عودة خطأ ؛ }}(2) سجل في Struts.xml
<action name = "testlogin" method = "testlogin"> <result name = "success"> success.jsp </sropegent> <result name = "error"
ما سبق هو تطبيق Struts2 الذي قدمه لك المحرر لإنشاء رموز التحقق الديناميكية والتحقق من رمز المثال. آمل أن يكون ذلك مفيدًا للجميع!