<html页面>...
<TR>
<TDクラス=「td_left」>
<レーベルフォー=「チェック」>カプチャ</レーベル>
</TD>
<TDクラス=「td_rightチェック」>
<入力タイプ=「テキスト」id=「チェック」名前=「チェック」クラス=「チェック」>
<imgsrc=「チェックコードサーブレット」身長=「32px」alt=""OnClick="changeCheckCode(これ)">
<文字タイプ=「テキスト/JavaScript」>
//画像クリックイベント
機能changeCheckCode(img) {
IMG。SRC=「チェックコードサーブレット?」+新機能日付().getTime(時間取得)();
}
</文字>
</TD>
</TR>//验证码拼接部分公共クラスCheckCodeServlet拡張HttpServlet{
@Override
公共の空洞doGet(HttpServletRequest リクエスト、HttpServletResponse 応答)投げServletException, IOException{
//サーバーはブラウザにキャッシュを禁止するよう通知します
response.setHeader(「プラグマ」,「キャッシュなし」); response.setHeader(「キャッシュコントロール」,「キャッシュなし」); response.setHeader(「期限切れ」,"0");
//記憶の中で長いものを作ってみて80、ワイド30デフォルトの黒い背景
//パラメータ1:長さ
//パラメータ2:幅
//パラメータ3:色
知力幅 =80;
知力高さ =30; BufferedImage画像 =新機能バッファードイメージ(幅、高さ、バッファ画像。TYPE_INT_RGB);
//ブラシを持ってきて
グラフィックス g = image.getGraphics();
//ブラシの色をグレーに設定してください
g.setColor(色。グレー);
//写真にぴったりの
g.fillRect(0,0、幅、高さ);
//制作4ランダム検証コード、12Ey
String checkCode = getCheckCode();
//コードを入力してくださいHttpSession中程度
request.getSession().setAttribute(「コード」,チェックコード);
//ブラシの色を黄色に設定してください
g.setColor(色。黄色);
//フォントのサイズを設定します
g.setフォント(新機能洗礼盤("黒体"フォント。太字,24));
//画像に検証コードを書き込む
g.drawString(チェックコード、15,25);
//メモリから画像をブラウザに出力します
//パラメータ1:ピクチャーオブジェクト
//パラメータ2:画像のフォーマット、例えば:PNG, JPG, GIF
//パラメータ3:画像が出力される場所
イメージIO。書く(画像、「PNG」,response.getOutputStream());
}
/**
*制作4ビットランダム文字列
*/
私立String getCheckCode() {
弦のベース =「0123456789ABCDEFGabcdefg」;
知力サイズ = 底長(); ランダムr =新機能ランダム(); StringBuffer sb =新機能StringBuffer();
に対して(知力i=1; i<=4; i++){
//制作0宛先サイズ1ランダムな値
知力index = r.nextInt(大きさ);
//で基地文字列は添字を得てインデックス登場人物
チャーc = base.charAt(インデックス);
//遺言c入れてStringBuffer真ん中に入れ
sb.付加記(c);
}
帰還sb.toString();
}
@Override
公共の空洞doPost(HttpServletRequest リクエスト、HttpServletResponse 応答) 投げServletException, IOException{
これ.doGet(リクエスト、レスポンス);
}
}
どうやってそれを実現するのか?
|