程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 如何用ServletJSP動態生成圖像驗證碼

如何用ServletJSP動態生成圖像驗證碼

編輯:關於JSP

現在有不少網站在用戶填寫表單時,同時要求填寫驗證碼,驗證碼的一個目的就是防范一些惡意的網站下載軟件,這些軟件能通過遍歷鏈接而將網站的所有網頁下載。還可以防止用戶不經過本網站的頁面而使用網站的資源。所以現在有不少網站都使用了驗證碼技術,驗證碼通常是一個在WEB服務器上生成的隨機字符串,同時以某種方式保存起來,比如保存到與當前的Session中,然後在用戶提交網頁時與用戶輸入的驗證比較是否一致,然而如果直接以明文的方式,還是不能防范一些功能較強的自動填寫表格的軟件。所以一般將驗證碼以圖片的形式顯示出來,同時可以將在圖片中顯示的字符串進行一些處理,比如使用旋轉字符,添加背景紋理等技術以增大被軟件識別的難度。下面簡要介紹一下如果實現這種驗證碼:
首先實現一個servlet用來生成圖片(當然也可以用jsp實現):
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.BufferedImage;
import java.awt.image.DataBuffer;
import java.awt.geom.GeneralPath;
import javax.swing.*;
import java.math.*;
public class Servlet1
extends HttpServlet {
//Process the HTTP Get request
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException {
    response.setContentType(CONTENT_TYPE);
    response.setContentType("image/jpeg");  //必須設置ContentType為image/jpeg
    int length = 4;      //設置默認生成4個數字
    Date d = new Date();
    long lseed = d.getTime();
    java.util.Random r = new Random(lseed);   //設置隨機種子

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved