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

主頁 > 知識庫 > jsp+Servlet編程實(shí)現(xiàn)驗(yàn)證碼的方法

jsp+Servlet編程實(shí)現(xiàn)驗(yàn)證碼的方法

熱門標(biāo)簽:四川保險(xiǎn)智能外呼系統(tǒng)商家 地圖標(biāo)注線上教程 電銷機(jī)器人是有一些什么技術(shù) 高德地圖標(biāo)注樣式 商洛電銷 杭州ai語音電銷機(jī)器人功能 杭州語音電銷機(jī)器人軟件 電銷機(jī)器人好賣么 北票市地圖標(biāo)注

本文實(shí)例講述了jsp+Servlet編程實(shí)現(xiàn)驗(yàn)證碼的方法。分享給大家供大家參考,具體如下:

這里用到兩個(gè)類,一個(gè)用于驗(yàn)證碼實(shí)現(xiàn),一個(gè)為后臺Servlet驗(yàn)證輸入是否正確:

CodeUtil.java--------驗(yàn)證碼具體實(shí)現(xiàn):

package util; 
import java.awt.Color; 
import java.awt.Font; 
import java.awt.Graphics; 
import java.awt.image.BufferedImage; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.io.PrintWriter; 
import java.util.Random; 
import javax.imageio.ImageIO; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
import javax.servlet.jsp.PageContext; 
import javax.servlet.jsp.tagext.BodyContent; 
import com.sun.image.codec.jpeg.JPEGCodec; 
import com.sun.image.codec.jpeg.JPEGImageDecoder; 
import com.sun.image.codec.jpeg.JPEGImageEncoder; 
public class CodeUtil extends HttpServlet { 
 public void service(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException { 
  //System.out.println("哈哈哈"); 
  response.setContentType("image/jpeg"); 
  //設(shè)置頁面不緩存 
  response.setHeader("Pragma", "No-cache"); 
  response.setHeader("Cache-Control", "no-cache");  
  response.setDateHeader("Expires", 0); 
  //在內(nèi)存中創(chuàng)建圖像 
  int width = 90; 
  int height = 35; 
  BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); 
  //獲取圖形上下文 
  Graphics g = image.getGraphics(); 
  //隨機(jī)類 
  Random random = new Random(); 
  //設(shè)定背景 
  g.setColor(getRandColor(200, 250)); 
  g.fillRect(0, 0, width, height); 
  //設(shè)定字體 
  g.setFont(new Font("Times New Roman",Font.PLAIN,30)); 
  //隨機(jī)產(chǎn)生干擾線 
  g.setColor(getRandColor(160, 200));  
  for (int i = 0; i  100; i++) {  
   int x = random.nextInt(width);  
   int y = random.nextInt(height);  
   int xl = random.nextInt(12);  
   int yl = random.nextInt(12);  
   g.drawLine(x, y, x + xl, y + yl);  
  } 
  //隨機(jī)產(chǎn)生4位驗(yàn)證碼 
  String[] codes = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; 
  String code = ""; 
  for(int i=0;i4;i++){ 
   String str = codes[random.nextInt(codes.length)]; 
   code += str; 
   // 將認(rèn)證碼顯示到圖象中 
   g.setColor(new Color(50 + random.nextInt(110), 20 + random.nextInt(110), 30 + random.nextInt(110))); 
   //調(diào)用函數(shù)出來的顏色相同,可能是因?yàn)榉N子太接近,所以只能直接生成  
   g.drawString(str, 18 * i +13, 27); //文字間距*i+距離左邊距,上邊距 
  } 
  HttpSession session=request.getSession(); 
  // 將認(rèn)證碼存入SESSION  
  session.setAttribute("code", code); 
  // 圖象生效  
  g.dispose();  
  // 輸出圖象到頁面  
  ImageIO.write(image, "JPEG", response.getOutputStream()); 
  //加上下面代碼,運(yùn)行時(shí)才不會出現(xiàn)java.lang.IllegalStateException: getOutputStream() has already been called ..........等異常 
  response.getOutputStream().flush(); 
  response.getOutputStream().close(); 
  response.flushBuffer(); 
 } 
 //獲取隨機(jī)顏色 
 private Color getRandColor(int fc,int bc){ 
  Random random = new Random(); 
  if(fc>255) fc=255; 
  if(bc>255) bc=255; 
  int r = fc + random.nextInt(bc - fc); 
  int g = fc + random.nextInt(bc - fc); 
  int b = fc + random.nextInt(bc - fc); 
  return new Color(r,g,b); 
  } 
} 

CheckCodeUtil.java-----------用戶輸入驗(yàn)證功能

package util; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
public class CheckCodeUtil extends HttpServlet { 
 public void service(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException { 
  request.setCharacterEncoding("utf-8"); 
  response.setContentType("text/html;charset=utf-8"); 
  PrintWriter out = response.getWriter(); 
  //從session獲取驗(yàn)證碼 
  HttpSession session=request.getSession(); 
  String code=session.getAttribute("code").toString(); 
  System.out.println(code); 
  //獲取用戶輸入驗(yàn)證碼 
  String input=request.getParameter("code"); 
  System.out.println(input); 
  if(code.equalsIgnoreCase(input)){ 
   //轉(zhuǎn)發(fā)數(shù)據(jù) 
   request.setAttribute("result", "true"); 
   request.getRequestDispatcher("test/regist.jsp").forward(request, response); 
//   response.sendRedirect(request.getContextPath()+"/regist/regist.jsp"); 
  }else{ 
   request.setAttribute("result", "false"); 
   request.getRequestDispatcher("test/regist.jsp").forward(request, response); 
  } 
 } 
} 

測試頁面效果:

測試頁面代碼:

%@ page session="true" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%> 
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
html> 
 head> 
  meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  title>Insert title here/title> 
  script> 
   function showResult1(){ 
   alert('輸入正確'); 
   } 
   function showResult2(){ 
   alert('輸入錯(cuò)誤'); 
   } 
  /script> 
 /head> 
 % 
  response.setContentType("text/html;charset=utf-8"); 
  request.setCharacterEncoding("utf-8"); 
  String path=request.getContextPath(); 
  if(request.getAttribute("result")!=null){ 
  String result=request.getAttribute("result").toString(); 
  out.print(result); 
  if(result.equals("true")){ 
   out.print("true"); 
   out.print("script>showResult1();script>"); 
  }else{ 
   out.print("script>showResult2();script>"); 
  } 
  } 
 %> 
  body> 
  br>驗(yàn)證碼演示 
  form action="%=path %>/checkCodeUtil" method="post"> 
  input type="text" size="10" name="code"/> 
  img src="%=path %>/codeUtil" id="img"/> 
  a href="javascript:;" onclick="document. 
   getElementById('img').src='%=path %>/codeUtil?'+new Date().getTime();">看不清,換一個(gè)/a> 
  input type="submit" value="提交"> 
  /form> 
 /body> 
/html> 

希望本文所述對大家jsp程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • JSP + Servlet實(shí)現(xiàn)生成登錄驗(yàn)證碼示例
  • jsp引用servlet生成的驗(yàn)證碼代碼演示
  • Jsp生成頁面驗(yàn)證碼的方法[附代碼]
  • JSP實(shí)現(xiàn)登錄功能之添加驗(yàn)證碼
  • jsp 生成驗(yàn)證碼代碼
  • 實(shí)現(xiàn)jsp驗(yàn)證碼的簡單小例子
  • jsp實(shí)現(xiàn)簡單驗(yàn)證碼的方法
  • jsp+ajax實(shí)現(xiàn)的局部刷新較驗(yàn)驗(yàn)證碼(onblur事件觸發(fā)較驗(yàn))
  • JSP彩色驗(yàn)證碼
  • Jsp servlet驗(yàn)證碼工具類分享

標(biāo)簽:丹東 貴州 宿州 紅河 青島 西藏 云浮 江西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《jsp+Servlet編程實(shí)現(xiàn)驗(yàn)證碼的方法》,本文關(guān)鍵詞  jsp+Servlet,編程,實(shí)現(xiàn),驗(yàn)證,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《jsp+Servlet編程實(shí)現(xiàn)驗(yàn)證碼的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于jsp+Servlet編程實(shí)現(xiàn)驗(yàn)證碼的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久成人18免费观看| 一区二区三区四区乱视频| 99久久精品免费看国产| 日本色综合中文字幕| 18欧美乱大交hd1984| 中文字幕中文乱码欧美一区二区| 精品国产一区久久| 久久免费精品国产久精品久久久久| 在线视频观看一区| 另类中文字幕网| 免费在线观看一区| 天天影视涩香欲综合网| 午夜日韩在线电影| 色网站国产精品| 美女视频黄频大全不卡视频在线播放| 亚洲国产精品一区二区尤物区| 亚洲午夜在线观看视频在线| 激情深爱一区二区| 视频一区二区欧美| 欧美一激情一区二区三区| 成人免费在线观看入口| 欧美精品一级二级| 欧美大胆一级视频| 日韩成人一区二区| 日韩欧美国产wwwww| 欧美久久婷婷综合色| 国产成人精品影视| 色狠狠av一区二区三区| 亚洲综合在线视频| 久久精品人人做人人爽人人| 国产在线国偷精品免费看| 26uuu国产在线精品一区二区| 美女在线视频一区| 亚洲人精品午夜| 国产精品人妖ts系列视频| 亚洲欧美日韩小说| 91精品国产aⅴ一区二区| 成人爱爱电影网址| 成人国产一区二区三区精品| 在线综合亚洲欧美在线视频| 久久中文娱乐网| 日韩视频一区二区在线观看| 欧美性大战xxxxx久久久| 七七婷婷婷婷精品国产| 一区二区三区欧美久久| ●精品国产综合乱码久久久久| 日韩一级大片在线观看| 精品国产乱码91久久久久久网站| 欧美老肥妇做.爰bbww| 欧美成人video| 激情文学综合网| 免费在线观看一区| 精品亚洲aⅴ乱码一区二区三区| 亚洲综合在线五月| 亚洲国产精品一区二区久久恐怖片| 午夜私人影院久久久久| 久久99日本精品| 成人免费观看av| fc2成人免费人成在线观看播放| 丁香婷婷综合五月| 在线观看av不卡| 久久午夜电影网| 91久久精品日日躁夜夜躁欧美| 色婷婷综合在线| 欧美色爱综合网| 久久综合久久综合久久| 久久色在线观看| 欧美一区二区三区免费大片| 欧美久久一二三四区| 日韩一级片网站| 亚洲乱码精品一二三四区日韩在线 | 成人激情文学综合网| 欧美精品乱码久久久久久按摩| 亚洲欧美色综合| 亚洲国产精品激情在线观看| 日韩在线一区二区| 欧美在线观看视频一区二区| 一区二区三区中文免费| 91免费版pro下载短视频| 日本成人在线视频网站| 成人动漫视频在线| 国产亚洲欧美在线| 色综合视频一区二区三区高清| 亚洲午夜精品一区二区三区他趣| 欧美日韩国产影片| 国产一区二三区好的| 久久久电影一区二区三区| 成人av动漫在线| 婷婷久久综合九色综合伊人色| 激情综合色播五月| 国产精品久久久99| 欧美一级二级在线观看| caoporm超碰国产精品| 香蕉久久一区二区不卡无毒影院| 精品国产不卡一区二区三区| 国产精品1区2区3区| 日韩一级完整毛片| av色综合久久天堂av综合| 国产精品1区2区| 日韩精品1区2区3区| 午夜电影网亚洲视频| 天天做天天摸天天爽国产一区| 欧美做爰猛烈大尺度电影无法无天| 亚洲图片欧美视频| 久久精品夜色噜噜亚洲a∨| 亚洲视频香蕉人妖| 8x8x8国产精品| 免费人成精品欧美精品| 国产精品久久网站| 3d成人动漫网站| 成人在线综合网| 亚洲高清中文字幕| 在线播放中文字幕一区| 精品一区二区免费视频| 国产精品人妖ts系列视频| 精品视频在线免费看| 国产乱理伦片在线观看夜一区| 亚洲一区二区三区四区中文字幕| 久久蜜桃一区二区| 欧美熟乱第一页| av网站一区二区三区| 精品亚洲aⅴ乱码一区二区三区| 亚洲天堂av一区| 久久久久9999亚洲精品| 欧美精品一区二区三区久久久| 色94色欧美sute亚洲线路一ni| 精品一区二区精品| 国产成人av电影在线播放| 亚洲男帅同性gay1069| 久久日一线二线三线suv| 69av一区二区三区| 亚洲成人免费av| 麻豆精品蜜桃视频网站| 国产一区二区三区精品欧美日韩一区二区三区| 天天操天天综合网| 久久国产综合精品| 国产成人h网站| av电影天堂一区二区在线| 欧美一区二区三区播放老司机| 欧美日韩中文字幕精品| 欧美日韩一区不卡| 欧美一级欧美一级在线播放| 欧美一区二区性放荡片| 日本午夜精品视频在线观看 | 欧美久久久久久蜜桃| 久久国产成人午夜av影院| 国产高清久久久| 欧美日韩精品系列| 久久久久久久一区| 国产精品进线69影院| 亚洲bt欧美bt精品| 天天色天天操综合| 一区精品在线播放| 精品在线免费视频| 欧美日韩免费一区二区三区| 国产精品色在线| 韩国一区二区视频| 91丨九色丨蝌蚪富婆spa| 日韩一级免费观看| 日本中文一区二区三区| 久久婷婷久久一区二区三区| 精品国产伦一区二区三区观看方式 | 麻豆专区一区二区三区四区五区| 国产精品一区二区无线| 91精品国产色综合久久久蜜香臀| 亚洲色图欧美激情| 国产成人免费在线观看不卡| 91九色02白丝porn| 久久久国产精品不卡| 制服丝袜在线91| 欧美一区二区三区视频免费播放| 在线欧美一区二区| 欧美电影影音先锋| 日韩美女视频一区二区| 欧美日本韩国一区| 精品国产91洋老外米糕| 亚洲国产精品久久人人爱蜜臀| 99久久精品国产导航| 国产亚洲欧美一级| 成人午夜在线播放| 一区二区三区四区视频精品免费| 91色porny蝌蚪| 午夜精品福利视频网站| 日韩免费在线观看| 成人美女视频在线观看| 一区二区三区视频在线观看| 欧美精品123区| 2023国产一二三区日本精品2022| 国产精品99久久久久久有的能看| 在线不卡中文字幕| 日本电影亚洲天堂一区| 久久精品一区二区三区不卡| 久久久午夜精品| 中文字幕在线一区| eeuss鲁一区二区三区| 亚洲欧美日韩中文播放| 欧美疯狂做受xxxx富婆| 久久成人18免费观看| 亚洲成人精品影院| 欧美国产欧美综合|