亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

jsp頁面驗證碼完整實例

2020-07-27 21:21:38
字體:
來源:轉載
供稿:網友

本文實例為大家分享了sp頁面驗證碼的具體代碼,供大家參考,具體內容如下

項目結構如下,MyEclipse中新建一個Web Project,取名servlet

1、src下new一個servlet類

package com.servlet;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import java.io.PrintWriter;import java.util.Random;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;public class IdentityServlet extends HttpServlet {  public static final char[] chars={'2','3','4','5','6','7','8','9','A'};//自定義驗證碼池  public static Random random=new Random();  //隨機數    public static String getRandomString(){  //獲取6位隨機數,放在圖片里    StringBuffer buffer=new StringBuffer();    for(int i=0;i<6;i++){      buffer.append(chars[random.nextInt(chars.length)]);    }    return buffer.toString();  }    public static Color getRandomColor(){  //獲取隨機的顏色    return new Color(random.nextInt(255), random.nextInt(255), random.nextInt(255));  }    public static Color getReverseColor(Color c){  //返回某顏色的反色    return new Color(255 - c.getRed(), 255 - c.getGreen(), 255 - c.getBlue());  }    /**   * Constructor of the object.   */  public IdentityServlet() {    super();  }  /**   * Destruction of the servlet. <br>   */  public void destroy() {    super.destroy(); // Just puts "destroy" string in log    // Put your code here  }  /**   * The doGet method of the servlet. <br>   *   * This method is called when a form has its tag value method equals to get.   *    * @param request the request send by the client to the server   * @param response the response send by the server to the client   * @throws ServletException if an error occurred   * @throws IOException if an error occurred   */  public void doGet(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    response.setContentType("image/jpeg");  //設置輸出類型        String randomString = getRandomString();  //隨機字符串    request.getSession(true).setAttribute("randomString", randomString);//放到session里        int width=100;  //圖片寬度    int height=30;  //圖片高度        Color color=getRandomColor();  //隨機顏色,用于背景色    Color reverse=getReverseColor(color);//反色,用于前景色    //創建一個彩色圖片    BufferedImage bi=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);    Graphics2D g=bi.createGraphics();  //繪圖對象    g.setFont(new Font(Font.SANS_SERIF,Font.BOLD,16));//設置字體    g.setColor(color);//設置顏色    g.fillRect(0, 0, width, height);//繪制背景    g.setColor(reverse);    g.drawString(randomString, 18, 20);//繪制隨機字符    for(int i=0,n=random.nextInt(100);i<n;i++){  //畫最多100個噪音點      g.drawRect(random.nextInt(width), random.nextInt(height), 1, 1);    }    ServletOutputStream out= response.getOutputStream();//轉成JPEG格式    JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);//編碼器    encoder.encode(bi);  //對圖片進行編碼    out.flush();  //輸出到客戶端  }  /**   * The doPost method of the servlet. <br>   *   * This method is called when a form has its tag value method equals to post.   *    * @param request the request send by the client to the server   * @param response the response send by the server to the client   * @throws ServletException if an error occurred   * @throws IOException if an error occurred   */  public void doPost(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    doGet(request, response);  }  /**   * Initialization of the servlet. <br>   *   * @throws ServletException if an error occurs   */  public void init() throws ServletException {    // Put your code here  }}

2、web.xml,會自動生成servlet和servlet-mapping的配置

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

3、WebRoot下新建一個html,展示驗證碼

<!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 type="text/javascript">function reloadImage(){  document.getElementById('btn').disabled=true;  document.getElementById('identity').src='servlet/IdentityServlet?ts='+new Date().getTime();}</script></head><body><img src="servlet/IdentityServlet" id="identity" onload="btn.disabled=false;" /><input type=button value="換個圖片" onclick="reloadImage()" id="btn"></body></html>

啟動Tomcat,輸入網址:http://localhost:8080/servlet/identity.html,效果如下:

點擊‘換個圖片',會生成新的驗證碼。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
草民午夜欧美限制a级福利片| 日韩亚洲国产中文字幕| 欧美成人一二三| 欧美日韩国产激情| 国产成人精品视频在线观看| 欧美视频免费在线| 久久人人爽人人爽人人片av高请| 欧美日韩综合视频| 欧美黄色片在线观看| zzjj国产精品一区二区| 91在线观看免费网站| 国产精品视频最多的网站| 91国内揄拍国内精品对白| 日韩欧美视频一区二区三区| 这里精品视频免费| 亚洲人成在线电影| 国产不卡在线观看| 中文在线资源观看视频网站免费不卡| 欧美性猛交xxxxx水多| 国产999精品久久久| 色综合导航网站| 91久久精品日日躁夜夜躁国产| 在线成人激情视频| 欧美国产激情18| 欧美裸体xxxx极品少妇软件| 38少妇精品导航| 亚洲欧洲一区二区三区在线观看| 亚洲色图美腿丝袜| 九九久久久久99精品| 免费91在线视频| 国产日韩欧美黄色| 国产999精品久久久影片官网| 日韩精品免费电影| 日韩欧美中文字幕在线播放| 久久久之久亚州精品露出| 美日韩精品视频免费看| 中文字幕精品影院| 伊人久久久久久久久久| 久久五月天综合| 国产精品永久免费| 日韩电影中文字幕在线观看| 欧美最近摘花xxxx摘花| 日韩成人中文字幕在线观看| 亚洲美女视频网| 欧美精品videofree1080p| 亚洲已满18点击进入在线看片| 欧美性xxxx极品hd满灌| 成人精品在线视频| 国产一区深夜福利| 欧美日韩不卡合集视频| 热久久99这里有精品| 欧美亚洲第一页| 亚洲综合国产精品| 久久精品一偷一偷国产| 亚洲视屏在线播放| 最近2019中文字幕第三页视频| 久久手机精品视频| 国产视频综合在线| 国产成人亚洲综合| 日日狠狠久久偷偷四色综合免费| 久久99久国产精品黄毛片入口| 亚洲精品国精品久久99热一| 国产黑人绿帽在线第一区| 日韩乱码在线视频| 国产精品久久久久久久av大片| 日韩精品在线电影| 成人av.网址在线网站| 欧美亚洲成人网| 日本免费一区二区三区视频观看| 日韩欧美国产高清91| 亚洲一区二区免费在线| 亚洲激情在线观看视频免费| 亚洲欧美一区二区三区四区| 91亚洲国产成人精品性色| 欧美激情三级免费| 国产精品视频男人的天堂| 久久久久久久久久久91| 亚洲人成网在线播放| 韩剧1988免费观看全集| 国产成人综合亚洲| 成人黄在线观看| 欧美亚洲另类在线| 国产精品一久久香蕉国产线看观看| 欧美日韩一区二区在线播放| 亚洲美女av在线| 亚洲最新av网址| 日韩中文综合网| 国产综合久久久久| 日韩免费av在线| 成人综合网网址| 欧美日韩国产精品一区| 国产成人一区二区| 色偷偷av亚洲男人的天堂| 欧美人成在线视频| 亚洲欧洲成视频免费观看| 欧美大片va欧美在线播放| 日韩av在线精品| 亚洲精品白浆高清久久久久久| 亚洲va国产va天堂va久久| 欧美夫妻性生活视频| 成人激情视频在线播放| 欧美乱人伦中文字幕在线| 久久久久成人精品| 亚洲深夜福利网站| 久久国产精彩视频| 日韩av大片在线| 美女精品久久久| 69av在线播放| 5566成人精品视频免费| 国产精品久久久久国产a级| 国产精品久久久久免费a∨大胸| 久操成人在线视频| 欧美日韩一区二区三区| 日韩欧美精品中文字幕| 久久夜精品va视频免费观看| 欧美最猛黑人xxxx黑人猛叫黄| 久久精品男人天堂| 国产日韩在线看片| 欧美日韩一区二区在线| 亚洲精品乱码久久久久久金桔影视| 久久中文字幕一区| 国产精品福利久久久| 91久热免费在线视频| 欧美成人免费全部观看天天性色| 91社区国产高清| 一区二区在线免费视频| 日韩av手机在线看| 国产精品成人一区二区| 亚洲精品中文字幕有码专区| 日韩免费观看av| 国产日韩精品入口| 日本19禁啪啪免费观看www| 成人精品一区二区三区电影免费| 亚洲女人天堂网| 日韩av中文在线| 国产一区二区三区视频| 91国语精品自产拍在线观看性色| 91免费欧美精品| 91精品久久久久久久久不口人| 国外色69视频在线观看| 日韩av电影在线网| 久久久视频在线| 国产日韩欧美在线看| 亚洲第一av在线| 国产精品白丝av嫩草影院| 亚洲国产精品va在看黑人| 亚洲第一精品电影| 国产一区二区三区在线播放免费观看| 人人爽久久涩噜噜噜网站| 成人在线视频网站| 国产精品99免视看9| 亚洲精品97久久| 日韩亚洲欧美中文高清在线| 国产精品v日韩精品| 国产91久久婷婷一区二区| 88xx成人精品| 成人免费在线视频网址| 91精品久久久久久久久中文字幕| 日韩欧美黄色动漫| www.日韩欧美| 成人在线视频网| 一区二区在线视频| 国产精品久久视频| 国产日韩精品在线|