ينفذ jsp رمز التحقق الرسومي
الكاتب:Eve Cole
وقت التحديث:2009-07-02 17:08:30
طريقة الاتصال
<img src=" http://...../getImg ">
المبدأ هو إنشاء رقم مكون من 4 أرقام 1000-9999 بشكل عشوائي في servlet
ثم اكتب هذا الرقم في الجلسة
أخرج صورة مكتوب عليها هذه الأرقام الأربعة
من جانب الخادم، بناءً على الرقم الذي أدخله المستخدم و
مقارنة القيمة في الجلسة.
package com.schoolwx.util;
استيراد java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
استيراد javax.servlet.*;
import javax.servlet.http.*;
import java.awt.*;
import java.awt.image.*;
/**
* العنوان: getImg.java
* الوصف: تنفذ هذه الفئة بشكل أساسي إنشاء رمز تحقق مكون من 4 أرقام بشكل عشوائي وكتابته في الجلسة.
* حقوق الطبع والنشر: حقوق الطبع والنشر (ج) 2003
* الشركة : بلو ستار سوفت وير
* @المؤلف الصقر
* @الإصدار 1.1
*/
يمتد getImg من الفئة العامة HttpServlet {
خط خاص mFont=new Font("宋体", Font.PLAIN,12);// تعيين الخط
// عملية النشر
doPost باطلة عامة (طلب HttpServletRequest، استجابة HttpServletResponse)
يلقي ServletException، IOException {
doGet(request,response);
}
doGet الفراغ العام (طلب HttpServletRequest، استجابة HttpServletResponse)
يلقي ServletException، IOException {
// احصل على رقم عشوائي من 1000-9999
سلسلة ق = ""؛
كثافة العمليات intCount=0;
intCount=(new Random()).nextInt(9999);//
if(intCount<1000)intCount+=1000;
s=intCount+"";
// ادفع قيمة الجلسة.
HttpSession session=request.getSession(true);
session.setAttribute("getImg",s);
Response.setContentType("image/gif");
ServletOutputStream out=response.getOutputStream();
BufferedImage image=new BufferedImage(35,14,BufferedImage.TYPE_INT_RGB);
Graphicsgra=image.getGraphics();
//تعيين لون الخلفية
gra.setColor(Color.yellow);
gra.fillRect(1,1,33,12);
//تعيين لون الخط
gra.setColor(Color.black);
gra.setFont(mFont);
// أرقام الإخراج
شار ج؛
ل(int i=0;i<4;i++) {
c=s.charAt(i);
gra.drawString(c+"",i*7+4,11); //7 هو العرض، 11 هو موضع الارتفاع العلوي والسفلي
}
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.Close();
}
}
http://blog.csdn.net/lixiaolong_blog/archive/2007/01/25/1493417.aspx