婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > JSP 制作驗(yàn)證碼的實(shí)例詳解

JSP 制作驗(yàn)證碼的實(shí)例詳解

熱門(mén)標(biāo)簽:電話機(jī)器人需要使用網(wǎng)絡(luò)嗎 給地圖標(biāo)注得傭金 如何看懂地圖標(biāo)注點(diǎn) 電銷機(jī)器人免培訓(xùn) 外呼系統(tǒng)使用方法 海外圖書(shū)館地圖標(biāo)注點(diǎn) 南通通訊外呼系統(tǒng)產(chǎn)品介紹 潤(rùn)滑油銷售電銷機(jī)器人 自繪地圖標(biāo)注數(shù)據(jù)

JSP 制作驗(yàn)證碼的實(shí)例詳解

 驗(yàn)證碼

  驗(yàn)證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試)的縮寫(xiě),是一種區(qū)分用戶是計(jì)算機(jī)還是人的公共全自動(dòng)程序。可以防止:惡意破解密碼、刷票、論壇灌水,有效防止某個(gè)黑客對(duì)某一個(gè)特定注冊(cè)用戶用特定程序暴力破解方式進(jìn)行不斷的登陸嘗試,實(shí)際上用驗(yàn)證碼是現(xiàn)在很多網(wǎng)站通行的方式,我們利用比較簡(jiǎn)易的方式實(shí)現(xiàn)了這個(gè)功能。這個(gè)問(wèn)題可以由計(jì)算機(jī)生成并評(píng)判,但是必須只有人類才能解答。由于計(jì)算機(jī)無(wú)法解答CAPTCHA的問(wèn)題,所以回答出問(wèn)題的用戶就可以被認(rèn)為是人類。

   Jsp制作驗(yàn)證碼

  運(yùn)行環(huán)境:tomcat+eclipse+jdk

  基本思想:現(xiàn)在Servlet上畫(huà)出驗(yàn)證碼的圖片,讓其顯示到頁(yè)面上,再用js方法能刷新驗(yàn)證碼,可以用ajax得到用戶輸入的值經(jīng)過(guò)servlet跟驗(yàn)證碼比對(duì)判斷是否,并符合提示用戶

  基本方法:  

BufferedImage: 

Image是一個(gè)抽象列,BufferedImage是Image的實(shí)現(xiàn)。


Image和BufferedImage的主要作用就是將一副圖片加載到內(nèi)存中。
Java將一副圖片加載到內(nèi)存中的方法是:
Java代碼 
String imgPath = "d:/demo.jpg"; 
BufferedImage image = ImageIO.read(new FileInputStream(imgPath)); 
該方法可以獲得圖片的詳細(xì)信息,例如:獲得圖片的寬度:image.getWidth(null);圖片只有加載內(nèi)存中才能對(duì)圖片進(jìn)行進(jìn)一步的處理。


Graphics: 

Graphics類提供基本的幾何圖形繪制方法,主要有:畫(huà)線段、畫(huà)矩形、畫(huà)圓、畫(huà)帶顏色的圖形、畫(huà)橢圓、畫(huà)圓弧、畫(huà)多邊形等,具體操作其內(nèi)容我推薦可以看看使用Java的Graphics類進(jìn)行繪圖的方法詳解

  驗(yàn)證碼的代碼實(shí)現(xiàn)

  我這里做的驗(yàn)證碼是顯示中文的,可以在servlet中修改想要顯示的是數(shù)字還是字母還是結(jié)合的,可以用數(shù)組存放這些,也可以轉(zhuǎn)換ASCII碼經(jīng)行隨機(jī)數(shù)字,看個(gè)人喜好

  先是做一個(gè)jsp中的驗(yàn)證碼的地方

div class="row cl">
    div>
     input type="text" placeholder="驗(yàn)證碼" value="驗(yàn)證碼:" onblur="testCheck(this.value);">
     img id="pic" src="CheckTestServlet"> a id="kanbuq" onClick="Checktest();">看不清,換一張/a> /div>
 /div>

  在做一個(gè)Servlet叫做CheckTestServlet.java

@WebServlet("/CheckTestServlet")
public class CheckTestServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
    
  
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          //這個(gè)方法實(shí)現(xiàn)驗(yàn)證碼的生成
          response.setCharacterEncoding("utf-8");
          //創(chuàng)建圖片緩沖區(qū)設(shè)置其大小  BufferedImage(int width, int height, int imageType) 
         BufferedImage bImage=new BufferedImage(100, 30, BufferedImage.TYPE_3BYTE_BGR);
         //在緩沖區(qū)上創(chuàng)建畫(huà)布
         Graphics g=bImage.getGraphics();
         //設(shè)置背景顏色
         g.setColor(Color.orange);
         //創(chuàng)建畫(huà)布矩形,位置(0,0)點(diǎn),大小100,30
         g.fillRect(0, 0, 100, 30);
         //創(chuàng)建隨機(jī)對(duì)象
         Random r=new Random();
         int index;//存放隨機(jī)數(shù)
         //得到的文字東西存放處
         StringBuffer sBuffer=new StringBuffer();
         //循環(huán)產(chǎn)生四個(gè)字
         for (int i = 0; i  4; i++) {
           //中文字的第一個(gè)十六進(jìn)制碼為4e00轉(zhuǎn)十進(jìn)制是19968,最后一個(gè)是9fa0十進(jìn)制為40869,所以可以產(chǎn)生在此之間的隨機(jī)數(shù)
           index=r.nextInt(40869-19968+1)+19968;//產(chǎn)生隨機(jī)數(shù)字
           //設(shè)置隨機(jī)顏色,
           g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)));
           //設(shè)置文字的類型,大小
           g.setFont(new Font("", Font.BOLD, 20));
           /*畫(huà)字,將隨機(jī)數(shù)字轉(zhuǎn)換成十六進(jìn)制Integer.toHexString(index),16)再轉(zhuǎn)換字符(char)(Integer.parseInt,
           在設(shè)置每個(gè)文字的位置
           */
           g.drawString((char)(Integer.parseInt(Integer.toHexString(index),16))+"", i*22+4, 18);
           //將其存放在StringBuffer中,以便后面讀取作比較
           sBuffer.append((char)(Integer.parseInt(Integer.toHexString(index),16)));
        }
         //將得到的文字設(shè)置到session中
         request.getSession().setAttribute("piccode", sBuffer.toString());
         /*將這個(gè)驗(yàn)證碼圖片讀寫(xiě)到頁(yè)面中
          * write(RenderedImage im, String formatName, OutputStream output)
        */         
         ImageIO.write(bImage, "jpg", response.getOutputStream());
  }

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }

  在做一個(gè)js刷新驗(yàn)證碼的,用于看不清,或者別的刷新用處

 function Checktest(){
     var time=new Date().getTime();
    $("#pic").attr('src',"CheckTestServlet?d="+time)
  }

  再寫(xiě)一個(gè)Ajax去驗(yàn)證用戶輸入的是否正確返回提示,這是用jQuery做的,需要引js

function testCheck(num){
    $.ajax({
      type:"post",//提交方式
      url:"TestCheckServlet",//提交地址
      async:true,//是否異步請(qǐng)求
      dataType:"html",//返回類型
      data:{"num":num},//傳過(guò)去的值
      success:function(data,textStatus){//成功執(zhí)行的方法
        $("#checks").html(data)
      },
      error:function(){//失敗執(zhí)行的方法
        alert("error");
      }
    })
  } 

  有點(diǎn)麻煩的再去做一個(gè)Servlet去驗(yàn)證Ajax傳過(guò)來(lái)的值是否匹配驗(yàn)證碼

@WebServlet("/TestCheckServlet")
public class TestCheckServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
  
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setCharacterEncoding("utf-8");
    PrintWriter out=response.getWriter();
    //得到輸入的驗(yàn)證碼與隨機(jī)的圖片驗(yàn)證碼作比較,判斷是否相等,返回提示用戶,
    if (request.getSession().getAttribute("piccode").toString().equals(request.getParameter("num"))) {
      out.println("驗(yàn)證碼正確");
    }else {
      out.println("驗(yàn)證碼錯(cuò)誤");
    }
  }


  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }

}

就這樣驗(yàn)證碼已經(jīng)基本搞定,其中還有許多需要修改的內(nèi)容,花樣,根據(jù)需求而來(lái)

 以上就是二維碼的制作,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

您可能感興趣的文章:
  • jsp頁(yè)面驗(yàn)證碼完整實(shí)例
  • JSP實(shí)用教程之簡(jiǎn)易圖片驗(yàn)證碼的實(shí)現(xiàn)方法(附源碼)
  • JSP實(shí)現(xiàn)登錄功能之添加驗(yàn)證碼
  • jsp頁(yè)面驗(yàn)證碼demo
  • JSP驗(yàn)證碼動(dòng)態(tài)生成方法
  • jsp+Servlet編程實(shí)現(xiàn)驗(yàn)證碼的方法
  • jsp+ajax實(shí)現(xiàn)的局部刷新較驗(yàn)驗(yàn)證碼(onblur事件觸發(fā)較驗(yàn))
  • jsp實(shí)現(xiàn)簡(jiǎn)單驗(yàn)證碼的方法

標(biāo)簽:內(nèi)江 樂(lè)山 銅川 廣州 貸款邀約 大連 黃石 南京

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP 制作驗(yàn)證碼的實(shí)例詳解》,本文關(guān)鍵詞  JSP,制作,驗(yàn)證,碼,的,實(shí)例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP 制作驗(yàn)證碼的實(shí)例詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于JSP 制作驗(yàn)證碼的實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    99精品国产99久久久久久白柏 | 国产精品美女久久久久久久久久久 | 欧美色窝79yyyycom| 亚洲激情自拍偷拍| 欧美性xxxxxxxx| 天堂va蜜桃一区二区三区漫画版| 欧美va亚洲va| 欧美日韩在线播放一区| 国产成人在线观看| 日本一区中文字幕| 日韩美女久久久| 欧美大片在线观看一区| 91一区二区三区在线观看| 日本麻豆一区二区三区视频| 国产精品视频在线看| 日韩亚洲欧美综合| 欧美一区二区三区在线| 成人亚洲一区二区一| 三级不卡在线观看| 日韩在线一区二区三区| 肉肉av福利一精品导航| 日韩精品电影一区亚洲| 久久99最新地址| 丝袜国产日韩另类美女| 亚洲嫩草精品久久| 中文字幕在线播放不卡一区| 欧美性猛交xxxx黑人交| 亚洲图片欧美视频| 中文字幕精品三区| 91精品国产色综合久久不卡电影 | 一区二区成人在线| 1000精品久久久久久久久| 欧美国产在线观看| 久久精品无码一区二区三区| 日韩欧美国产一区二区在线播放| 在线中文字幕不卡| 福利电影一区二区| 成人黄色av电影| av激情亚洲男人天堂| 91在线你懂得| 欧美在线你懂的| 在线免费亚洲电影| 色偷偷久久一区二区三区| 捆绑紧缚一区二区三区视频| 日韩精品色哟哟| 日产国产高清一区二区三区| 日韩一区欧美二区| 日本视频一区二区三区| 免费观看一级欧美片| 精品一二三四区| 国内不卡的二区三区中文字幕 | 国产在线看一区| 国内精品伊人久久久久影院对白| 美国十次了思思久久精品导航| 亚洲v精品v日韩v欧美v专区 | 欧美激情一区三区| 中文字幕av一区二区三区| 欧美精品一区二区三区高清aⅴ| 日韩欧美中文字幕一区| 精品国产sm最大网站免费看| 久久午夜老司机| 欧美激情一区二区三区蜜桃视频| 亚洲欧洲av在线| 亚洲成人免费在线观看| 美国十次综合导航| 粉嫩av一区二区三区| 色8久久人人97超碰香蕉987| 欧美老女人第四色| 国产偷v国产偷v亚洲高清| 一区二区三区不卡视频| 亚洲精品国产品国语在线app| 亚洲高清不卡在线观看| 国产酒店精品激情| 色噜噜狠狠色综合欧洲selulu| 成人av网站在线观看免费| 久久爱www久久做| 韩国av一区二区三区在线观看| 中文字幕在线观看一区二区| 国产欧美精品一区aⅴ影院| 99re亚洲国产精品| 91精品国产美女浴室洗澡无遮挡| 欧美日韩国产在线观看| 国产欧美一区在线| 亚洲18女电影在线观看| 国产黄色精品网站| 欧美日韩一卡二卡三卡| 国产成人在线影院| 亚洲图片激情小说| 国产日韩av一区| 在线成人av网站| 精品欧美乱码久久久久久1区2区| 欧美一区二区人人喊爽| 91精品国产美女浴室洗澡无遮挡| 在线观看亚洲成人| 欧美丝袜丝nylons| 欧美日韩国产美| 欧美丰满一区二区免费视频| 91精品在线一区二区| 5566中文字幕一区二区电影| 欧美一级日韩免费不卡| 日韩片之四级片| 国产偷国产偷亚洲高清人白洁| 国产日韩欧美麻豆| 1区2区3区精品视频| 久久99国产精品免费| 91九色最新地址| 国产精品无人区| 免费亚洲电影在线| 91久久免费观看| 国产精品看片你懂得| 另类调教123区| 欧美日韩电影在线播放| 亚洲色大成网站www久久九九| 久久国产精品99精品国产| 在线观看亚洲精品| 自拍偷自拍亚洲精品播放| 国产一区 二区| 日韩一区二区三区电影在线观看 | 亚洲乱码国产乱码精品精的特点| 亚洲精品国产高清久久伦理二区| 午夜婷婷国产麻豆精品| 成人亚洲精品久久久久软件| 欧美体内she精视频| 久久伊人蜜桃av一区二区| 综合色中文字幕| 免费观看91视频大全| 99久久精品国产一区| 94-欧美-setu| 日韩无一区二区| 国产精品久久久久影视| 亚洲国产成人av网| 高清beeg欧美| 日韩欧美三级在线| 一区二区三区高清在线| 国产精品一区二区x88av| 色激情天天射综合网| 精品国产污网站| 亚洲电影欧美电影有声小说| 亚洲伦理在线精品| 中文字幕乱码一区二区免费| 亚洲另类色综合网站| 国产精品小仙女| 欧美久久一区二区| 亚洲九九爱视频| 成人污污视频在线观看| 日韩欧美中文字幕制服| 亚洲va在线va天堂| 色噜噜狠狠色综合中国| 中文字幕一区二区三区不卡| 久久精品久久99精品久久| 欧美三片在线视频观看 | 日韩欧美一级精品久久| 国产日韩视频一区二区三区| 美女视频免费一区| 欧美久久久久中文字幕| 一区二区三区不卡在线观看 | 青青草国产成人av片免费| 欧美日韩国产一区二区三区地区| 亚洲日本在线天堂| 美女高潮久久久| 91精选在线观看| 天堂一区二区在线| 欧美日韩久久久| 日韩精品一级二级| 制服丝袜中文字幕一区| 午夜成人免费电影| 欧美刺激午夜性久久久久久久| 天天操天天综合网| 91精品国产综合久久精品性色| 亚洲超碰精品一区二区| 制服丝袜亚洲色图| 一区二区三区蜜桃网| 色欧美日韩亚洲| 一区二区免费在线播放| 在线观看视频一区| 天天操天天综合网| 26uuu成人网一区二区三区| 久久国内精品自在自线400部| 精品理论电影在线观看 | 久久亚洲综合色| 国产盗摄一区二区三区| 国产女主播在线一区二区| 国产.精品.日韩.另类.中文.在线.播放| 国产日韩成人精品| 在线亚洲一区二区| 日韩黄色小视频| 国产婷婷精品av在线| 色噜噜久久综合| 久久99精品视频| 国产精品久久夜| 欧美日韩国产天堂| 日韩在线一二三区| 国产人妖乱国产精品人妖| 99国产精品国产精品久久| 性感美女久久精品| 久久毛片高清国产| 欧美三级视频在线观看| 国产激情精品久久久第一区二区| 亚洲欧美日韩国产手机在线| 欧美一二区视频|