Java検証コードを手動で作成すると、特定のコンテンツは次のとおりです
Webアプリケーション検証コードの構成:
(1)入力ボックス
(2)検証コードを示す画像
検証コードを作成するプロセス:
検証コードを生成するコンテナはJ2EEのサーブレットを使用します
画像を生成するために必要なクラス:
(1)BufferedImage画像データバッファー
(2)グラフィック描画写真
(3)色は色を取得します
(4)ランダムは乱数を生成します
(5)Imageio入力画像
特定の実装プロセス:
(1)検証コードを生成するサーブレットを定義します
(2)BufferedImageオブジェクトを決定すると、主な機能は画像の一時的な容器として画像バッファーを作成することです。
(3)図面の「背景」であるグラフィックオブジェクトを取得し、「キャンバス」として理解する
(4)ランダムを介して乱数を生成して確認情報を作成する
(5)グラフィック操作を通じて、特定の図面を描きます
(6)情報はセッションに保存されます
(7)Imageioを使用して生成された画像を出力し、Imageio、Response.getPutStream()のwrite()メソッドにoutパラメーターを設定して、画像を前景に渡します。
(8)検証のためのサーブレットを作成し、検証のためにセッションでデータを抽出します(Ajax非同期方法はここで使用されます)
特定のコード実装(Web側検証コードの例)
<html> <head> <Meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> java検証コード</title> <script src = "https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"検証コード入力:<入力タイプ= "text" name = "checkcode"> <img id = "codimg" src = "imageservlet"> <a href = "javascript:reloadcode();">はっきりと見えませんか? </a> <br/> <入力タイプ= "submit" value = "submit"> <div id = "info" style = "color:red;"> </div> <script = "text/javascript"> $(function(){// ajaxは非同期検証コードを背景$( "入力[type = submit])に{code ":" input = checkcode ")。 date()。getTime(); //異なる時間$( "#codeimg")Imageservletクラス(検証コード生成パーツ)
@webservlet( "/imageservlet")パブリッククラスImageservletはhttpservletを拡張します{private static final long serialversionuid = 1l; / ** * @see httpservlet#httpservlet() */ public imageservlet(){super(); // todo auto-generated constructor stub}/ ** * @see httpservlet#doget(httpservletrequest request、httpservletresponse応答) = new BufferedImage(68、22、bufferedimage.type_int_rgb);グラフィックg = bimg.getgraphics();色= new Color(200,151,255); // Color Generation G.SetColor(Color); g.fillrect(0、0、68、22); char [] ch = "abcdefghjiklmnopqrstuvwxyz0123456789" .tochararray(); //文字と数字を含む配列を取得し、その後ランダムrandom = new random(); //乱数int len = ch.length、indexを作成します。 stringbuffer sbuffer = new StringBuffer(); //ループは(int i = 0; i <4; i ++){index = random.nextint(len); //ランダムな文字と番号G.setcolor(new color(88)、andextint(88)、nextint(120)、random.nextint(90)))の作成の4つのランダム文字を生成します。 18); sbuffer.append(ch [index]); //ランダムに取得した文字をバッファーシリーズに} request.getSession()。setattribute( "newcode"、sbuffer.tostring()); / ** * @see httpservlet#dopost(httpservletrequest request、httpservletresponse応答) }}チェックコード(検証コード検証サーブレット)
@webservlet( "/checkcode")パブリッククラスチェックコードはhttpservletを拡張します{private static final long serialversionuid = 1l; / ** * @see httpservlet#httpservlet() */ public checkcode(){super(); // todo auto-generated constructor stub}/ ** * @see httpservlet#doget(httpservletrequest request、httpservletResponse応答) Response.setcharacterencoding( "utf-8"); string code = request.getParameter( "code")。touppercase(); //検証コードを取得して、ケース変換文字列result = nullを実行します。 if(request.getSession()。getAttribute( "newcode")。equals(code)){result = "verification sucture!"; Response.getWriter()。append(result); } else {result = "検証コードエラー!"; Response.getWriter()。append(result); }} / ** * @see httpservlet#dopost(httpservletrequest request、httpservletResponse応答) * /保護されたvoid dopost(httpservletrequest request、httpservletresponse応答)Servletexception、ioexception {// dodo aut-demerated method supeg(// }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。