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

首頁 > 編程 > JSP > 正文

JSP開發(fā)之生成圖片驗證碼技術(shù)的詳解

2024-09-05 00:23:23
字體:
供稿:網(wǎng)友

JSP開發(fā)之生成圖片驗證碼技術(shù)的詳解

我們在網(wǎng)頁注冊用戶時,常常會需要格根據(jù)圖片給的圖片驗證碼把驗證碼輸進去。那么我們今天就來學習這個。

簡單來說分為三步驟:

1.底層用Java實現(xiàn)生成驗證碼圖片
2.通過配置文件調(diào)用實現(xiàn)Java生成片
3.通過HTML技術(shù)把圖片顯示到網(wǎng)頁

首先是最底層Java生成圖片代碼

package cn.hncu.servlets;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.FileOutputStream;import java.io.IOException;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;public class CodeImgServlet extends HttpServlet {  @Override  protected void service(HttpServletRequest req, HttpServletResponse resp)      throws ServletException, IOException {    //☆1☆--相比純java方式有變化的地方    resp.setContentType("image/jpeg");//設(shè)置http響應(yīng)頭---告訴瀏覽器我現(xiàn)在發(fā)的是這個圖片格式的數(shù)據(jù),你用相應(yīng)的方式來解析    //定義圖片的寬和高    int w=60;    int h=30;    //聲明一個RGB格式的內(nèi)存中的圖片    BufferedImage img = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);    Graphics g = img.getGraphics();    //把背景變白色    g.setColor(Color.white);    g.fillRect(0, 0, w, h);    //設(shè)置字體    g.setFont(new Font("aa",Font.BOLD,18));    //產(chǎn)生并draw出4個隨機數(shù)字    Random r = new Random();    for(int i=0;i<4;i++){      int a = r.nextInt(10);//生成0~9之間的隨機整數(shù)      int y = 15+r.nextInt(20);//產(chǎn)生隨機的垂直位置      //產(chǎn)生隨機顏色      Color c = new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256));      g.setColor(c);      g.drawString(""+a, i*15, y);    }    //畫幾條干擾線    for(int i=0;i<10;i++){      //產(chǎn)生隨機顏色      Color c = new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256));      g.setColor(c);      g.drawLine(r.nextInt(60), r.nextInt(30), r.nextInt(60), r.nextInt(30));    }    g.dispose();//類似于IO中的flush(),把圖形數(shù)據(jù)刷到img中    //把內(nèi)存圖片img對象保存到一個jpg文件    ImageIO.write(img, "JPEG", resp.getOutputStream() );//☆2☆  }}

項目中的Web.xml配置文件代碼

<?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>  <!-- 安全目錄中的jsp文件如果要允許外面訪問,得在web.xml進行配置,配置成一個jsp-servlet --> <servlet>  <servlet-name>ajsp</servlet-name>  <!-- 配置servlet用servlet-class, 配置jsp頁面用jsp-file標簽 -->  <jsp-file>/WEB-INF/jsps/a.jsp</jsp-file> </servlet> <!--   <servlet>  <servlet-name>CodeImgServlet</servlet-name>  <servlet-class>cn.hncu.servlets.CodeImgServlet</servlet-class>  </servlet>  <servlet>  <servlet-name>LoginServlet</servlet-name>  <servlet-class>cn.hncu.servlets.LoginServlet</servlet-class>  </servlet>  -->   <servlet>    <servlet-name>CodeImgServlet</servlet-name>    <servlet-class>cn.hncu.servlets.CodeImgServlet</servlet-class>   </servlet>   <servlet>    <servlet-name>LoginServlet</servlet-name>    <servlet-class>cn.hncu.servlets.LoginServlet</servlet-class>   </servlet> <!-- 給servlet配置訪問路徑 --> <servlet-mapping>  <servlet-name>ajsp</servlet-name>  <url-pattern>/x/a.asp</url-pattern> </servlet-mapping> <servlet-mapping>  <servlet-name>CodeImgServlet</servlet-name>  <url-pattern>/code</url-pattern> </servlet-mapping> <servlet-mapping>  <servlet-name>LoginServlet</servlet-name>  <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <welcome-file-list>  <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>

主頁面代碼登錄代碼

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <script type="text/javascript">   function changeImg(){     var img = document.getElementById("codeImg");     // 當src每次的路徑方式變化時,就會去重新請求一次后臺。     img.src="code?"+new Date().getTime();   } </script> </head> <body>  <h2>用戶注冊</h2>   <form action="LoginServlet" method="post">      姓名:<input type="text" name="name"><br/>      密碼:<input type="password" name="pwd"><br/>    <!--      驗證碼:<input type="text" name="code"/><img src="imgs/a.jpg"/><br/>     -->      驗證碼:<input type="text" name="code"/><img id="codeImg" src="code"/><a href="javascript:changeImg();" rel="external nofollow" >看不清</a><br/>     <input type="submit" value="注冊">   </form>   <br/><br/>   <hr/>   <a href="WEB-INF/jsps/a.jsp" rel="external nofollow" >WA---a.jsp</a> <br/>   <a href="/helloWebProj/x/a.asp" rel="external nofollow" >AC---a.jsp</a> <br/> </body></html>

當頁面加載,就向TOMCAT請求服務(wù),調(diào)用前面的JAVA類,生成圖片,再通過HTML文檔,將圖片加載到頁面來。

JSP,生成,圖片驗證碼,java生成圖片驗證碼的實例

其次Web.xml配置文件還可以用來設(shè)置訪問安全目錄文件(WEB-INF)

 <servlet>     <servlet-name>ajsp</servlet-name>    <!-- 配置servlet用servlet-class, 配置jsp頁面用jsp-file標簽 -->     <jsp-file>/WEB-INF/jsps/a.jsp</jsp-file>   </servlet>     <servlet>    <servlet-name>CodeImgServlet</servlet-name>    <servlet-class>cn.hncu.servlets.CodeImgServlet</servlet-class>   </servlet>   <servlet>    <servlet-name>LoginServlet</servlet-name>    <servlet-class>cn.hncu.servlets.LoginServlet</servlet-class>   </servlet> <!-- 給servlet配置訪問路徑 --> <servlet-mapping>  <servlet-name>ajsp</servlet-name>  <url-pattern>/x/a.asp</url-pattern> </servlet-mapping> <servlet-mapping>  <servlet-name>CodeImgServlet</servlet-name>  <url-pattern>/code</url-pattern> </servlet-mapping> <servlet-mapping>  <servlet-name>LoginServlet</servlet-name>  <url-pattern>/LoginServlet</url-pattern> </servlet-mapping>

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望通過本文能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到JSP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产福利在线导航| 激情六月婷婷综合| 欧美黄色免费观看| 色哟哟日韩精品| 亚洲欧美国产精品专区久久| 永久免费av片在线观看全网站| 神马影院我不卡午夜| 成人免费看片视频在线观看| 97香蕉久久超级碰碰高清版| 久久亚洲国产中v天仙www| 在线观看你懂得| 法国伦理少妇愉情| 国产精品欧美激情在线观看| 久久精品国产麻豆| 毛片精品免费在线观看| 成熟亚洲日本毛茸茸凸凹| 国产一卡二卡3卡4卡四卡在线| 亚洲黄色网址大全| 夜夜骚av一区二区三区| 久久精品三级视频| 欧美一区二区公司| 一区二区三区四区五区精品视频| 日韩午夜免费| 欧美三日本三级少妇99| 高清成人在线| 天天天综合网| 亚洲精品小视频| 久久亚洲中文字幕无码| 国产成人精品久久二区二区| 精品国产乱码久久久久久久软件| 久久久久久黄色| fc2在线中文字幕| 尤物av一区二区| 在线视频精品一| 人妻久久一区二区| 欧美日韩国内| 成人欧美一区二区三区视频xxx| 精品视频一区 二区 三区| 男人添女人下部高潮视频在观看| 91高清免费看| 久久国产精品99久久久久久丝袜| 国产综合中文字幕| 久久久亚洲欧洲日产国码αv| 丰满少妇乱子伦精品看片| 欧美一区三区二区在线观看| 成人短视频在线观看| 精品理论电影在线| 希岛爱理中文字幕| av地址在线观看| 国产精品网站导航| 综合激情五月婷婷| 992tv在线| 色综合久久天天综线观看| 久久品道一品道久久精品| 欧美粗大gay| 99精品国产99久久久久久白柏| 伊人av成人| 91成人理论电影| 日韩美女激情视频| 久久中文资源| 亚洲成人黄色| sm捆绑调教国产免费网站在线观看| 欧美伊人久久久久久久久影院| 最新不卡av在线| 精品盗摄女厕tp美女嘘嘘| 丝袜美腿中文字幕| 精品无码久久久久久久| 国产精品一区二区三区在线观| 亚洲自拍另类综合| 久久久久久久久中文字幕| 99久久99久久免费精品蜜臀| 美女视频免费一区| 奇米777日韩| 亚洲AV成人无码一二三区在线| 亚洲欧美另类久久久精品| 成人aa视频在线观看| 国产亚洲精品免费| 香港一级纯黄大片| www亚洲视频| 欧美性生活大片免费观看网址| 久久精品道一区二区三区| 不卡在线视频中文字幕| jizz18欧美18| 成人频在线观看| 粉嫩喷白浆久久| 久久精品久久久久| 日韩视频在线观看一区| 污视频在线免费| 你懂的视频在线看| 中文字幕一二三四| 国产精品麻豆欧美日韩ww| 国产精品日韩二区| 制服.丝袜.亚洲.中文.综合懂色| 成人网18入口| 日产中文字幕在线精品一区| 天堂在线观看| 国产乱码精品一区二区三区忘忧草| 你微笑时很美电视剧整集高清不卡| 黄页免费在线观看| 久久久精品国产| 欧美日韩电影在线观看| 日韩中文第一页| 亚洲欧洲视频| av在线日韩国产精品| 精品视频一二三| 奇米色在线视频| 国产九色在线播放九色| 韩剧1988免费观看全集| 潘金莲激情呻吟欲求不满视频| 亚洲人成在线观看一区二区| 久久精品免视看国产成人| 国产美女网站在线观看| 高清孕妇孕交╳╳交| 欧美重口乱码一区二区| 久久久国产精品| 免费一级电影| 在线视频观看日韩| 我要色综合中文字幕| 天天看天天干| 久久视频在线观看| 欧美午夜性春猛xxxx| 人妻换人妻a片爽麻豆| 久久精品二区三区| 久久夜色电影| 日韩中文字幕高清| 国内三级在线观看| 激情伊人五月天久久综合| 91免费视频观看| 成年人视频免费在线观看| 99这里有精品视频| 亚洲国产成人精品一区二区三区| 日本不卡一区在线| 亚洲国产成人tv| 国产精品久久久久久久久久久久| 一卡二卡三卡日韩欧美| 亚洲毛片欧洲毛片国产一品色| 亚洲自拍一区在线观看| 免费av在线一区二区| 欧美精品色哟哟| 欧美日韩成人免费视频| 福利一区二区在线观看| 菠萝菠萝蜜在线观看| 国产精品色在线网站| www.精品av.com| 亚洲一区二区三区涩| 菠萝蜜视频国产在线播放| 国产美女精品写真福利视频| 国产精品老熟女视频一区二区| 性一交一乱一精一晶| 国产精品久久久久aaaa九色| 国产精品一区二区三区美女| 日本一区二区在线不卡| 欧美xingq一区二区| 国产99久久久国产精品免费看| 日韩毛片无码永久免费看| 欧美精品一区二区三区中文字幕| 超碰免费在线播放| 国产在线视频综合| 国产情侣自拍av| 男女视频在线观看网站| 中文字幕日韩一区二区| 欧美jizzhd精品欧美巨大免费| 国产偷自视频区视频一区二区| 久久丝袜视频| 一级在线免费观看| 超碰精品一区二区三区乱码| 日韩手机在线导航| 欧美wwwwww| 全部免费毛片在线播放一个| 日本全棵写真视频在线观看| 国产精品久久国产三级国电话系列| 国产精品 欧美精品| 欧美天堂亚洲电影院在线观看| 国产成人禁片在线观看| 男女男精品视频站| 亚洲小少妇裸体bbw| 91在线在线观看| 6080yy午夜一二三区久久| 亚洲成人av一区| 久草在线国产| 欧美精品偷拍| 日本一区二区免费视频| 黄色国产在线观看| 久久不卡免费视频| 久久久影院免费| 亚洲在线视频| 久久综合伊人77777麻豆| 日韩精品免费视频人成| 欧美性受xxxx黑人xyx| 91免费在线视频网站| 最新天堂资源在线| 黄色三级中文字幕| jizz日本大全| 精品176二区| 五月婷婷在线视频| av一区二区三区免费观看| 中韩乱幕日产无线码一区| 一本久道久久综合多人| www在线看| 亚洲日本精品国产第一区| 亚洲最大成人综合| 欧美艳星brazzers| 国产三级视频网站| 精品国产一区二区三区2021| 国产精品成人免费视频| www.av在线视频| yellow字幕网在线| 牛牛精品视频在线| 亚洲xxxx视频| 亚洲永久免费观看| 国产天堂素人系列在线视频| 伦理在线一区| 久久艳妇乳肉豪妇荡乳av| 久久久久久久高潮| 人人澡人人爽| 日韩va亚洲va欧美va清高| 欧美精品videos另类| 日韩三区免费| 日韩精品一区二区三区电影| 亚洲国产高潮在线观看| 7777精品伊人久久久大香线蕉经典版下载| 伊人婷婷久久| 欧美黑人猛交| 隔壁老王国产在线精品| 国产日韩欧美精品在线| 久久99久久99精品蜜柚传媒| 亚洲五月婷婷| 91在线直播| 在线日韩av| 污污在线观看| 午夜精品在线| 精品久久中文字幕久久av| 噜噜噜躁狠狠躁狠狠精品视频| 91极品身材尤物theporn| 亚洲午夜在线观看视频在线| 亚洲三区在线播放| 日韩精品在线免费看| 精品少妇theporn| 欧美午夜片欧美片在线观看| 亚洲天堂福利av| 免费无码国产v片在线观看| 国产经典中年夫妇盗摄| 比比资源先锋影音网| 狠狠88综合久久久久综合网| 日韩欧美一区二区三区不卡视频| youjizz.com日本| 欧美激情视频一区| 91看片淫黄大片一级| 综合区小说区图片区在线一区| 在线观看免费一区二区| 美女黄视频在线播放| 一区二区三区视频免费| 成人免费视频在线观看超级碰| av久久久久久| 久久亚洲精品一区| 1024在线播放| 在线一区日本视频| 欧美精品九九久久| 伊人影院中文字幕| 800av在线免费观看| 国产视频福利在线| 久久久久无码精品国产sm果冻| 欧美性xxxx图片| 亚洲美女性视频| 国产精品av网站| 色偷偷成人一区二区三区91| 九九视频九九热| 免费成人高清在线视频theav| 野花视频免费在线观看| 久久人人爽人人爽爽久久| 午夜精品久久久久久久久久久久久蜜桃| 欧美激情一区二区三区全黄| 国产视频第一页在线观看| 欧美在线一卡| 精品一区二区在线播放| 亚洲av激情无码专区在线播放| 亚洲乱码久久| 亚洲va欧美va国产综合剧情| 在线看黄网址| 国产对白videos麻豆高潮| 97精品在线观看| 亚洲欧美精品一区| 美洲精品一卡2卡三卡4卡四卡| 欧美三级中文字| 小草在线视频在线免费视频| 久久国产精品99国产精| 国产一区高清| 1000部精品久久久久久久久| 亲子乱一区二区三区电影| 日韩视频一二区| 色婷婷久久一区二区三区麻豆| 狠狠干狠狠搞| 国产乱子伦一区二区三区国色天香| 欧美人成在线观看网站高清| 亚洲国产欧洲综合997久久| 欧美日韩夫妻久久| 国产精品一二三在| 日韩欧美中文一区二区| 久久精品亚洲欧美日韩精品中文字幕| 成人一区二区电影| 亚洲国产高清一区二区三区| 女厕盗摄一区二区三区| 丰满少妇xbxb毛片日本| 国产精品第5页| 欧美人与禽猛交乱配视频| 国产精九九网站漫画| 91亚洲欧美| 91精品国产自产在线观看永久| 337p日本欧洲亚洲大胆精品| xfplay爱情电影网love| 96久久精品| 欧美亚洲三区| 日韩欧美在线视频观看| 麻豆91在线看| 久久精品色播| 嫩草伊人久久精品少妇av杨幂| 四虎影院在线播放| 日本人妻熟妇久久久久久| 国产嫩bbwbbw高潮| 99在线免费视频| 久久 天天综合| 无码专区aaaaaa免费视频| 呦视频在线一区二区三区| 国产欧美精品在线| 国产伦精品一区二区三区免.费| 92福利视频午夜1000合集在线观看| 中文字幕亚洲欧美日韩在线不卡| 日本成人精品|