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

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

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

    隨筆-39  評(píng)論-33  文章-0  trackbacks-0

    如何在用戶(hù)注冊(cè)或登錄時(shí)使用驗(yàn)證碼圖片

    ? 胡立新

    1、 策略

    1.1?? 在用戶(hù)登錄或注冊(cè)的 jsp 頁(yè)面上創(chuàng)用驗(yàn)證碼圖片,顯示在界面上,同時(shí)將驗(yàn)證碼構(gòu)成的字符串保存到會(huì)話(huà)中。

    1.2?? 在后臺(tái)檢查用戶(hù)上傳的驗(yàn)證信息是否與保存在會(huì)話(huà)中的驗(yàn)證碼字符串相同,如果不同要求用戶(hù)重輸。

    2、 產(chǎn)生驗(yàn)證碼圖片的 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) 產(chǎn)生圖片并以 imageName 為鍵名保存到會(huì)話(huà)中,返回圖片上顯示的字符串,這個(gè)字符也以“ valiCode ”為鍵名保存在會(huì)話(huà)中。

    3、 運(yùn)用方法

    3.1 jsp 頁(yè)面上產(chǎn)生驗(yàn)證碼圖片并顯示,將字符保存在會(huì)話(huà)中。

    ??? <td> 驗(yàn)證碼 </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新坐標(biāo) 的標(biāo)簽 <nhtml:image/> 作用是顯示內(nèi)存中的圖片。

    3.2 在后臺(tái)進(jìn)行比較。

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

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

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

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

    ??? }

    ??? user formBean valiCode 是用戶(hù)上傳的驗(yàn)證信息。如果上傳的驗(yàn)證信息不等于保存在會(huì)話(huà)中的驗(yàn)證信息則返回。

    posted on 2007-03-20 00:14 newxy新坐標(biāo) 閱讀(2752) 評(píng)論(1)  編輯  收藏

    評(píng)論:
    # re: 如何在用戶(hù)注冊(cè)或登錄時(shí)使用驗(yàn)證碼圖片[未登錄](méi) 2007-05-15 15:23 | yt

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久精品亚洲中文字幕无码麻豆| 久久久久亚洲Av无码专| 亚洲精品乱码久久久久久下载| 激情内射亚洲一区二区三区爱妻| 成在线人直播免费视频| 在线观看免费视频资源| 免费人成在线观看播放国产 | 无码国产精品一区二区免费虚拟VR | 四虎在线成人免费网站| 亚洲国产成人久久笫一页| 久久久无码精品亚洲日韩京东传媒 | 亚洲天天做日日做天天欢毛片| 亚洲精品无码久久久久秋霞| 成人性生交大片免费看好| 四虎在线免费播放| 亚洲2022国产成人精品无码区| 国产精品亚洲av色欲三区| 一区二区在线免费观看| yy6080久久亚洲精品| 亚洲精品一卡2卡3卡三卡四卡| 九一在线完整视频免费观看| 亚洲人成网站免费播放| 国产AV无码专区亚洲AV毛网站| 亚洲精品精华液一区二区| 性xxxx视频免费播放直播| 亚洲av麻豆aⅴ无码电影| 亚洲a级在线观看| 波多野结衣免费一区视频| 四虎永久成人免费| 亚洲人成在线中文字幕| 国产无遮挡裸体免费视频在线观看| 日本a级片免费看| 亚洲性一级理论片在线观看| 国内精品免费久久影院| 全黄a免费一级毛片人人爱| 中文字幕乱码亚洲无线三区| 久9久9精品免费观看| 久久精品国产亚洲5555| 久久亚洲精品11p| 成人免费视频软件网站| 亚洲日本香蕉视频观看视频|