<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    love fish大鵬一曰同風起,扶搖直上九萬里

    常用鏈接

    統計

    積分與排名

    friends

    link

    最新評論

    如何在用戶注冊或登錄時使用驗證碼圖片(轉)

    1、 策略

    1.1?? 在用戶登錄或注冊的 jsp 頁面上創用驗證碼圖片,顯示在界面上,同時將驗證碼構成的字符串保存到會話中。

    1.2?? 在后臺檢查用戶上傳的驗證信息是否與保存在會話中的驗證碼字符串相同,如果不同要求用戶重輸。

    2、 產生驗證碼圖片的 java 代碼:

    package bbs.business;

    ?

    import javax.servlet.ServletRequest;

    import java.util.Random;

    import java.awt.Font;

    import javax.servlet.http.HttpServletRequest;

    import java.awt.Color;

    import java.awt.image.BufferedImage;

    import java.awt.Graphics;

    ?

    public class ValidateImage {

    ??? public static String createImage(ServletRequest request,String imageName){

    ??????? HttpServletRequest servletRequest=(HttpServletRequest)request;

    ??????? Random random=new Random();

    ??????? String valiCode="";

    ??????? for (int i = 0; i < 4; i++) {

    ??????????? String rand = String.valueOf(random.nextInt(10));

    ??????? ????valiCode+=rand;

    ??????? }

    ??????? if(servletRequest.getSession()==null)

    ??????????? servletRequest.getSession().setAttribute("valiCode",valiCode);

    ??????? else

    ??????????? servletRequest.getSession(false).setAttribute("valiCode",valiCode);

    ?

    ??????? int width = 60, height = 20;

    ??????? BufferedImage image = new BufferedImage(width, height,

    ??????????????????????????????????????????????? BufferedImage.TYPE_INT_RGB);

    ??????? Graphics g = image.getGraphics();

    ??????? g.setColor(new Color(0xDCDCDC));

    ?????? ?g.fillRect(0, 0, width, height);

    ??????? g.setColor(Color.black);

    ??????? g.drawRect(0,0,width-1,height-1);

    ??????? g.setFont(new Font("Atlantic Inline",Font.PLAIN,18));

    ??????? g.setColor(Color.black);

    ??????? g.drawString(valiCode.substring(0,1), 8, 17);

    ??????? g.drawString(valiCode.substring(1,2), 20, 15);

    ??????? g.drawString(valiCode.substring(2,3), 35, 18);

    ??????? g.drawString(valiCode.substring(3,4), 45, 15);

    ??????? g.dispose();

    ??????? servletRequest.getSession(false).setAttribute(imageName,image);

    ??????? return valiCode;

    ??? }

    }

    方法 createImage(ServletRequest request,String imageName) 產生圖片并以 imageName 為鍵名保存到會話中,返回圖片上顯示的字符串,這個字符也以“ valiCode ”為鍵名保存在會話中。

    3、 運用方法

    3.1 jsp 頁面上產生驗證碼圖片并顯示,將字符保存在會話中。

    ??? <td> 驗證碼 </td>

    ??? <td>

    <html:text property="valiCode" size="8"></html:text>

    </td>

    ??? <% bbs.business.ValidateImage.createImage(request,"valiImage");%>

    ??? <td>

    ??? ????<nhtml:image name="valiImage" path="/showImage" refresh="true"/> *

    ??? </td>

    ??? 效果如下:

    ???

    <nhtml:image name="valiImage" path="/showImage" refresh="true"/> 使用了 newxy新坐標 的標簽 <nhtml:image/> 作用是顯示內存中的圖片。

    3.2 在后臺進行比較。

    ??? String valiCode=(String) user.get("valiCode");

    ??? if (valiCode == null || !(valiCode.equals(servletRequest.getSession(false).getAttribute("valiCode")))) {

    ??????????? servletRequest.setAttribute("message", " 提示:驗證碼不正確! ");

    ??????????? return forward;

    ??? }

    ??? user formBean valiCode 是用戶上傳的驗證信息。如果上傳的驗證信息不等于保存在會話中的驗證信息則返回。

    posted on 2007-03-20 09:17 liaojiyong 閱讀(501) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲视频一区二区三区| 91精品国产亚洲爽啪在线影院 | 99re6热视频精品免费观看| 欧洲亚洲国产清在高| 中文字幕av无码不卡免费| 亚洲中文字幕无码不卡电影| 中文字幕成人免费高清在线| 亚洲人成伊人成综合网久久久| a在线免费观看视频| 99久久精品国产亚洲| ww在线观视频免费观看| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 日本免费人成黄页在线观看视频| 在线综合亚洲欧洲综合网站| 在线播放免费播放av片| 国产亚洲视频在线观看| 亚洲欭美日韩颜射在线二| 日韩精品免费视频| 亚洲一区电影在线观看| 国产免费69成人精品视频| 一级免费黄色大片| 亚洲国产女人aaa毛片在线| 和日本免费不卡在线v| 亚洲av纯肉无码精品动漫| 亚洲区不卡顿区在线观看| 亚欧日韩毛片在线看免费网站| 一级看片免费视频| 精品国产_亚洲人成在线高清| 国产大片91精品免费观看不卡| 亚洲精品美女久久久久久久| 狠狠亚洲狠狠欧洲2019| 亚洲av无码专区在线电影天堂| 亚洲国产一区视频| 99re在线这里只有精品免费| 亚洲av无码偷拍在线观看| 亚洲一区二区三区在线视频| 1000部拍拍拍18勿入免费视频软件 | 亚洲美女视频一区| 国产精品va无码免费麻豆| 中文字幕免费不卡二区| 亚洲欧美国产日韩av野草社区|