قم بإنشاء رمز التحقق يدويًا يدويًا ، والمحتوى المحدد هو كما يلي
تكوين رمز التحقق من تطبيق الويب:
(1) مربع الإدخال
(2) صورة تظهر رمز التحقق
عملية صنع رمز التحقق:
تستخدم الحاوية التي تنشئ رمز التحقق
الفصول المطلوبة لإنشاء الصور:
(1) المخزن المؤقت لبيانات صورة BufferedImage
(2) صور رسم الرسوم البيانية
(3) اللون يحصل على اللون
(4) يولد عشوائي أرقامًا عشوائية
(5) صورة إدخال Imageio
عملية تنفيذ محددة:
(1) تحديد servlet لإنشاء رمز التحقق
(2) تحديد كائن BufferedImage ، الوظيفة الرئيسية هي إنشاء مخزن مؤقت للصورة كحاوية مؤقتة للصورة.
(3) الحصول على الكائن الرسومي ، "خلفية" الرسم ، وفهمه على أنه "قماش"
(4) إنشاء أرقام عشوائية من خلال عشوائي لإنشاء معلومات التحقق
(5) من خلال العمليات الرسومية ، ارسم رسومات محددة
(6) يتم تخزين المعلومات في الجلسة
(7) استخدم Imageio لإخراج الصورة التي تم إنشاؤها ، وتمرير الصورة إلى المقدمة عن طريق تعيين المعلمة OUT في طريقة truction () لـ Imageio ، reponse.getOutputStream ().
(8) قم بعمل خدمة للتحقق واستخراج البيانات في الجلسة للتحقق (يتم استخدام الطريقة غير المتزامنة AJAX هنا)
تطبيق رمز محدد (مثال رمز التحقق من جانب الويب)
<html> <head> <meta http-equiv = "content-type" content = "text/html ؛ charset = utf-8"> <title> code java code </title> <script src = "https://apps.bdimg.com/libs/jquery/2. إدخال رمز التحقق: <type type = "text" name = "checkCode"> <img id = "codeimg" src = "pictureservlet"> <a href = "javaScript: ReloadCode () ؛"> لا يمكن رؤية بوضوح؟ </a> <br/> <input type = "prident" value = "submit"> <div id = "info" style = "color: red ؛ {"رمز": $ ("name = checkde]"). DATE ().فئة الصور (جزء توليد رمز التحقق)
webservlet ("/pictureservlet") فئة عامة الصور يمتد httpservlet {private Static Final Long SerialVersionuid = 1L ؛ / ** * seee httpservlet#httpservlet () */ public imageservlet () {super () ؛ // TODO TODATION CONTRUCTOR CONTERTORTOR}/ ** * SEE HTTPSERVELT#DOGE (طلب httpservletrequest ، استجابة httpservletresponse) */ محمية void dogge (httpservletRequest request ، httpservletponse response) throwsexception ، ioexception {// // tood-generated ablederated. New BufferedImage (68 ، 22 ، BufferedImage.type_int_rgb) ؛ الرسومات g = bimg.getGraphics () ؛ لون اللون = لون جديد (200،151،255) ؛ // توليد الألوان G.SetColor (اللون) ؛ G.FillRect (0 ، 0 ، 68 ، 22) ؛ char [] ch = "abcdefghjiklmnopqrstuvwxyz0123456789". tochararray () ؛ // احصل على صفيف يحتوي على رسائل وأرقام ، ثم الحصول على الشخصيات بشكل عشوائي عشوائيًا عشوائيًا = جديد عشوائي () ؛ // إنشاء رقم عشوائي int len = ch.length ، index ؛ StringBuffer Sbuffer = new StringBuffer () ؛ // loop تنشئ 4 أحرف عشوائية لـ (int i = 0 ؛ i <4 ؛ i ++) {index = random.nextint (len) ؛ // إنشاء حرف عشوائي ورقم g.setColor (لون جديد (عشوائي. 18) ؛ sbuffer.append (ch [index]) ؛ // ضع الأحرف التي تم الحصول عليها عشوائيًا في سلسلة buffer} request.getSession (). setAttribute ("newcode" ، sbuffer.toString ()) / ** * see @httpservlet#dopost (طلب httpservletrequest ، httpservletresponse) * / / محمية void dopost (httpservletrequest request ، httpservletsponse response) يلقي servletexception ، ioexception {todo method method (طلب ، استجابة) ؛ }}CheckCode (Servlet التحقق من رمز التحقق)
webservlet ("/checkCode") تمتد كود الفئة العامة httpservlet {private static final long serialversionuid = 1L ؛ / ** * seee httpservlet#httpservlet () */ public checkCode () {super () ؛ // TODO TODALED AUTO CONTRUCTOR Stub}/ ** * see httpservlet#doget (طلب httpservletrequest ، استجابة httpservletresponse) */ محمية void dogge استجابة. setcharacterencoding ("UTF-8") ؛ رمز السلسلة = request.getParameter ("CODE"). ToupperCase () ؛ // احصل على رمز التحقق وأداء نتيجة سلسلة تحويل الحالة = null ؛ if (request.getSession (). getAttribute ("newCode"). يساوي (رمز)) {result = "التحقق الناجح!" ؛ استجابة. GetWriter (). } آخر {result = "خطأ رمز التحقق!" ؛ استجابة. GetWriter (). }} / ** * @see httpservlet#dopost (httpservletrequest request ، httpservletresponse) * / محمية void dopost (httpservletrequest request ، httpservletresponse response) يلقي servleTexception ، ioexception {// todo method googe doget) ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.