国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > JSP > 正文

jsp頁面驗證碼demo

2024-09-05 00:22:44
字體:
來源:轉載
供稿:網友

在java后臺中生成驗證碼的ImageIO傳到前端頁面顯示,同時把驗證碼的value值傳入session 中用于與用戶輸入的驗證碼進行匹配,在用戶驗證中使用ajax技術,在不刷新頁面的同時進行驗證碼驗證。

程序結構圖:

jsp頁面驗證碼,jsp頁面驗證,jsp驗證碼

VerifyCodeUtils程序主要內容為通過java生成驗證碼的圖片,以及驗證碼的value值,程序如下:

 

package utils;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.util.HashMap;import java.util.Map;import java.util.Random;public class VerifyCodeUtils {private static BufferedImage image = null;  private static Random random = new Random();  //在自己定義的一些數中,生成4位隨機數  public static String getVerifyCode() {    String str = "";    char[] code = new char[]{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','U',      'V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t',      'u','v','w','x','y','z','2','3','4','5','6','7','8','9'};    Random random = new Random();    for(int i = 0; i < 4; i++) {      str += String.valueOf(code[random.nextInt(code.length)]);    }    return str;  }  //生成驗證碼圖像  public static Map getVerifyCode(int width, int heigth) {    VerifyCodeUtils.image = new BufferedImage(width, heigth, BufferedImage.TYPE_INT_RGB);    Graphics2D g = (Graphics2D) VerifyCodeUtils.image.getGraphics();    String verifyCode = getVerifyCode();    Map map = new HashMap();    map.put("verifyCode", verifyCode);    //將圖像填充為白色    g.setColor(Color.WHITE);    g.fillRect(0, 0, width, heigth);    //設置字體    g.setFont(new Font("宋體", Font.BOLD + Font.ITALIC, heigth-10));    //畫邊框。     g.setColor(VerifyCodeUtils.getColor());      g.drawRect(0, 0, width, heigth);     //隨機產生干擾線,使圖象中的認證碼不易被其它程序探測到    g.setColor(Color.BLACK);      for (int i = 0; i < 50; i++) {        int x = VerifyCodeUtils.random.nextInt(width);        int y = VerifyCodeUtils.random.nextInt(heigth);        int xl = VerifyCodeUtils.random.nextInt(5);        int yl = VerifyCodeUtils.random.nextInt(5);       g.setColor(getColor());      g.drawLine(x, y, x + xl, y + yl);      }     char c;    for(int i = 0; i < 4; i++) {      c = verifyCode.charAt(i);      g.drawString(c+"", i*20+40, heigth-10);    }    map.put("image", VerifyCodeUtils.image);    return map;  }  //隨機化顏色  public static Color getColor() {    int red = 0, green = 0, blue = 0;      // 產生隨機的顏色分量來構造顏色值,這樣輸出的每位數字的顏色值都將不同。      red = VerifyCodeUtils.random.nextInt(255);      green = VerifyCodeUtils.random.nextInt(255);      blue = VerifyCodeUtils.random.nextInt(255);     return new Color(red,green,blue);  }}

VerifyCodeServlet把VerifyCodeUtils生成的驗證碼圖片通過io流傳入前端顯示,代碼如下:

 

package Servlet;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Map;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import utils.VerifyCodeUtils;/** * Servlet implementation class VerifyCodeServlet */@WebServlet("/")public class VerifyCodeServlet extends HttpServlet {  private static final long serialVersionUID = 1L;  /**   * @see HttpServlet#HttpServlet()   */  public VerifyCodeServlet() {    super();    // TODO Auto-generated constructor stub  }  /**   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)   */  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    response.setHeader("Expires", "-1");    response.setHeader("Cache-Control", "no-cache");    response.setHeader("Pragma", "no-cache");    response.setHeader("Content-type", "image/jpeg");    Map map = VerifyCodeUtils.getVerifyCode(223, 50);    //把verifyCode的數值傳入session中用于驗證用戶輸入的驗證碼是否正確    request.getSession().setAttribute("verifyCode", map.get("verifyCode").toString().toUpperCase());    //通過IO流傳入前端顯示    ImageIO.write((BufferedImage) map.get("image"), "jpg", response.getOutputStream());   }  /**   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)   */  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    // TODO Auto-generated method stub    doGet(request, response);  }}

頁面jsp代碼如下:

 

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="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"><base id="base" href="${pageContext.request.contextPath}"><title>驗證碼測試界面</title><style>div{float:left;}input{width:223px;height:31px;margin-right:20px;}img{width:223px;height:35px;}p{margin:10px;}</style></head> <body> <script src="${pageContext.request.contextPath}/JS/demo.js"></script> <div>  <input type="text" name="verifyCode" id="verifyCode" placeholder="驗證碼" onblur="check_verifyCode()">  </div>  <div>    <img src="${pageContext.request.contextPath}/servlet/VerifyCodeServlet" style="width: 100%" onclick="this.src=this.src + '?' + Math.random()"/>  </div>  <div>    <p id = "tip"></p>  </div></body></html>

js 實現ajax代碼如下:

 

/** *  */function check_verifyCode(){  var XMLHttpReqVerifyCode = null;  var url =document.getElementById("base").href +"/servlet/TestVerifyCodeServlet";  var verifyCode = document.getElementById("verifyCode").value;  var tip = document.getElementById("tip");  var errorTip = "輸入的驗證碼不正確";  var successTip = "輸入的驗證碼正確";  tip.innerHTML=errorTip;  if(verifyCode==null || verifyCode==""){    tip.innerHTML=errorTip;    tip.style.color = "red";  }else{    if(window.XMLHttpRequest) {      //DOM2瀏覽器      XMLHttpReqVerifyCode = new XMLHttpRequest();    } else if(window.ActiveXObject) {        //使用json語法創建數組      var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];      for(var i = 0; i < MSXML.length; i++) {        try{          XMLHttpReqVerifyCode = new ActiveXObject(MSXML[i]);        } catch(e) {        }      }    }    XMLHttpReqVerifyCode.open("POST",url, true);    XMLHttpReqVerifyCode.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    XMLHttpReqVerifyCode.onreadystatechange = function testVerifyCodeServletResponse(){      if(XMLHttpReqVerifyCode.readyState == 4 && (XMLHttpReqVerifyCode.status == 200 || XMLHttpReqVerifyCode.status == 304)) {        if(XMLHttpReqVerifyCode.responseText == 1){          tip.innerHTML = successTip;          tip.style.color = "green";        }else if(XMLHttpReqVerifyCode.responseText == 0){          tip.innerHTML = errorTip;          tip.style.color = "red";        }      }    }    XMLHttpReqVerifyCode.send("code="+verifyCode);  }    //ajax前后臺交互function createXMLHttpRequest(XMLHttpReq) {  if(window.XMLHttpRequest) {    //DOM2瀏覽器      XMLHttpReq = new XMLHttpRequest();  } else if(window.ActiveXObject) {    //使用json語法創建數組    var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];    for(var i = 0; i < MSXML.length; i++) {      try{        XMLHttpReq = new ActiveXObject(MSXML[i]);      } catch(e) {      }    }    return XMLHttpReq;  }}}

TestVerifyCodeServlet與js交互代碼為:

 

package Servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class TestVerifyCodeServlet */@WebServlet("/TestVerifyCodeServlet")public class TestVerifyCodeServlet extends HttpServlet {  private static final long serialVersionUID = 1L;  /**   * @see HttpServlet#HttpServlet()   */  public TestVerifyCodeServlet() {    super();    // TODO Auto-generated constructor stub  }  /**   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)   */  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    // TODO Auto-generated method stub    String codeTrue = (String) request.getSession().getAttribute("verifyCode");    String codeInput = request.getParameter("code");    System.out.println(codeInput);    response.setContentType("text/html;charset=utf-8");    PrintWriter out = response.getWriter();//打印流    if(codeInput!=null){      if(codeInput.toUpperCase().equals(codeTrue)){        out.println("1");      }else{        out.println("0");      }    }  }  /**   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)   */  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    // TODO Auto-generated method stub    doGet(request, response);  }}

xml代碼為

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name></display-name> <welcome-file-list>  <welcome-file>demo.jsp</welcome-file> </welcome-file-list> <servlet>  <servlet-name>VerifyCodeServlet</servlet-name>  <servlet-class>Servlet.VerifyCodeServlet</servlet-class> </servlet> <servlet-mapping>  <servlet-name>VerifyCodeServlet</servlet-name>  <url-pattern>/servlet/VerifyCodeServlet</url-pattern> </servlet-mapping>  <servlet>  <servlet-name>TestVerifyCodeServlet</servlet-name>  <servlet-class>Servlet.TestVerifyCodeServlet</servlet-class> </servlet> <servlet-mapping>  <servlet-name>TestVerifyCodeServlet</servlet-name>  <url-pattern>/servlet/TestVerifyCodeServlet</url-pattern> </servlet-mapping></web-app>

結果顯示:

jsp頁面驗證碼,jsp頁面驗證,jsp驗證碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
18av在线视频| 99色在线观看| 伊人222成人综合网| 黄色毛片在线| 尤物网址在线观看| 在线91av| 国产寡妇树林野战在线播放| ·天天天天操| 欧美日韩国产亚洲沙发| 午夜亚洲成人| 国产中文第一页| 国产成人精品男人的天堂538| 国产成人精品久久一区二区小说| 精品国产白色丝袜高跟鞋| 日本片在线看| 国产私拍精品| 超碰在线中文| 国产激情在线| 伊人春色在线| 国产探花视频在线观看| 四虎影视成人永久免费观看视频| 国产在线观看91| 国产经典自拍视频在线观看| 欧美日韩综合高清一区二区| 91欧美在线视频| 国产中文伊人| 亚洲男人网站| 国产黄色免费| 国产精品入口麻豆免费看| 亚洲欧洲成人| 中文资源在线官网| 国产精品伦一区二区三区视频| 日本韩国精品一区二区| 国产精品四虎| 91av资源在线| 免费a级人成a大片在线观看| 国产精品久久久久白浆| 美女被人操视频在线观看| 精品无吗乱吗av国产爱色| 天天操人人爽| 久热中文字幕在线观看| 亚洲成a人v欧美综合天堂麻豆| 天堂在线中文资源| 国产主播福利在线| 免费a级人成a大片在线观看| 久久综合精品视频| 高潮白浆视频| 国产人成高清视频观看| 午夜在线小视频| 国产区高清在线| 国产一卡二卡3卡4卡四卡在线| 久久99国产视频| 天天操天天操天天色天天要| 国产女王在线**视频 | 亚洲精品天堂在线| 国产成人无吗| 在线影视一区| 欧美韩日国产| 国产视频xxxx| 亚洲精品自拍区在线观看| 日韩a视频在线观看| 久久五月精品中文字幕| 国产三级做爰在线观看| 伊人影院在线观看| 免费午夜一级| 96久久久久久| 狂野欧美性猛交xxxx乱大交| 国产天堂素人系列在线视频| 亚洲妇熟xxxx妇色黄| 国产在线激情视频| 国产成人久久精品77777| h视频在线网站| 国产日产一区二区| 欧美日韩不卡中文字幕在线| 毛片视频免费观看| 国产黄色一级电影| 久久亚洲资源| 国产95在线|亚洲| 毛片在线视频| 国产精品免费视频一区一| 日本h片在线观看| 国产成人夜间影院在线观看| 四虎精品成人a在线观看| 国产小黄视频| 豆国产97在线|亚洲| 91在线最新| 国产一级黄色片免费| 天天操夜夜添| 在线免费观看高清视频色| 成人免费一区二区三区牛牛 | 尤物在线网址| 黄色在线视频观看网站| 亚洲欧美中文字幕在线观看 | 国产一卡二卡3卡4卡四卡在线| 99爱视频在线观看| 久久亚洲天堂| 青青草视频在线观看| 亚洲欧美精品日韩欧美 | 国产精品bbw一区二区三区| 狠狠插狠狠操| 欧美日韩亚洲国内综合网| av片在线观看| 在线观看免费黄色| 亚洲精品天堂在线观看| 一本免费视频| 亚洲精品影院在线| 四虎精品成人a在线观看| 国产精品178页| 国产精品四虎| 91九色在线看| 亚洲欧美国产另类首页| 亚洲v片在线观看| 麻豆国产在线视频| 国产美女在线播放| 国产三区四区在线观看| 国产成人综合美国十次| av福利在线观看| 欧美xxxx黑人又粗又长| 午夜不卡视频| 国产青草视频在线观看视频| 国产高清在线视频| 在线观看精品视频一区二区三区| av二区三区| 国内自拍视频在线观看| 国产超级va在线视频| 亚洲一道本在线| 国产在线激情视频| 国产国产人免费人成免费视频| av大片在线| 国产女呦网站| 在线观看精品视频一区二区三区| 青草视频在线播放| 国产一区久久精品| 亚洲wwwwww| 尤物视频在线看| 99中文字幕一区| 九九热在线观看视频| 国产不卡视频| 最好看更新中文字幕| 天天草天天草| 中文字幕av网| 国产无遮挡又黄又爽免费网站| 亚洲尤物在线视频| 国产黄色免费电影| 99视频资源网| 国产永久免费高清在线观看| 亚洲国产精华液| 91资源在线观看| 国产视频资源| 国产美女在线免费观看| 男女午夜视频在线观看| 亚洲视频手机在线观看| 91麻豆精品国产91久久| 国产精品视频一区二区免费不卡| 国产麻豆精品入口在线观看| 超碰在线影院| 黄网址在线永久免费观看| 波多野结衣中文字幕久久| 伊人中文字幕在线| 精品极品三级久久久久| 国产精品xxx电影| 国产三级在线看| 国产亚洲精品自在线观看| 激情网站在线| 中文字幕在线免费| 国产又色又爽又黄刺激在线视频| 看成年女人免费午夜视频| 青青草观看免费视频在线| 亚洲an天堂an在线观看| 在线观看电影av| 碰草在线视频| 中文字幕免费中文| 国产黄色小视频| 在线免费国产视频| 日本高清中文字幕二区在线| 九九热精品在线视频| 五月天天在线| 精品日韩av| av中文在线资源| 成人免费一区二区三区牛牛| 高清色视频在线观看| 中文字幕不卡免费视频| 18 激情视频在线| 日本视频在线观看一区二区三区| 青草视频在线播放| 国产人成在线视频| wwww在线观看免费视频| 福利在线国产| 69视频在线观看| 国产尤物一区二区三区| 91午夜在线| 国产鲁鲁视频在线观看特色| 国产午夜视频| 九九99九九精彩| 精品一区二区91| 国产在线拍揄自揄拍视频| 国产天堂在线播放视频| 另类高清dbsm日本tvav| 影音先锋在线中文字幕| 国产三级av在线|