jsp はグラフィック検証コードを実装します
著者:Eve Cole
更新時間:2009-07-02 17:08:30
呼び出しメソッド
<img src=" http://..../getImg ">
原理は、サーブレット内で 4 桁の数字 1000 ~ 9999 をランダムに生成することです。
次に、この番号をセッションに書き込みます
これら 4 つの数字が書かれた画像を出力します
サーバー側では、ユーザーが入力した番号に基づいて、
セッション中の値の比較。
パッケージcom.schoolwx.util;
java.io.* をインポートします。
java.util.* をインポートします。
com.sun.image.codec.jpeg.* をインポートします。
javax.servlet.* をインポートします。
インポート javax.servlet.http.*;
java.awt.* をインポートします。
java.awt.image.* をインポートします。
/**
* タイトル: getImg.java
* 説明: このクラスは主に 4 桁の検証コードをランダムに生成し、セッションに書き込むことを実装します。
* 著作権:Copyright (c) 2003
※会社名:ブルースターソフトウェア
* @作者ファルコン
* @バージョン1.1
*/
public class getImg extends HttpServlet {
private Font mFont=new Font("宋体", Font.PLAIN,12);//フォントを設定します
//ポスト処理
public void doPost(HttpServletRequest リクエスト,HttpServletResponse レスポンス)
throws ServletException,IOException {
doGet(リクエスト, レスポンス);
}
public void doGet(HttpServletRequest リクエスト,HttpServletResponse レスポンス)
throws ServletException,IOException {
//1000~9999の乱数を取得します
文字列 s="";
int 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("画像/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);
//数値を出力する
文字c;
for(int i=0;i<4;i++) {
c=s.charAt(i);
gra.drawString(c+"",i*7+4,11); //7 は幅、11 は上下の高さの位置です。
}
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
エンコーダー.エンコード(画像);
out.close();
}
}
http://blog.csdn.net/lixiaolong_blog/archive/2007/01/25/1493417.aspx