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

首頁 > 編程 > JSP > 正文

詳解JSP開發之生成圖片驗證碼的簡單步驟

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

在網上注冊用戶時,往往需要根據圖片給出的圖片驗證碼輸入驗證碼,今天錯新技術頻道小編就帶大家來學習詳解JSP開發之生成圖片驗證碼的簡單步驟吧!

簡單來說分為三步驟:

1.底層用Java實現生成驗證碼圖片
2.通過配置文件調用實現Java生成片
3.通過HTML技術把圖片顯示到網頁

首先是最底層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");//設置http響應頭---告訴瀏覽器我現在發的是這個圖片格式的數據,你用相應的方式來解析    //定義圖片的寬和高    int w=60;    int h=30;    //聲明一個RGB格式的內存中的圖片    BufferedImage img = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);    Graphics g = img.getGraphics();    //把背景變白色    g.setColor(Color.white);    g.fillRect(0, 0, w, h);    //設置字體    g.setFont(new Font("aa",Font.BOLD,18));    //產生并draw出4個隨機數字    Random r = new Random();    for(int i=0;i<4;i++){      int a = r.nextInt(10);//生成0~9之間的隨機整數      int y = 15+r.nextInt(20);//產生隨機的垂直位置      //產生隨機顏色      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++){      //產生隨機顏色      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(),把圖形數據刷到img中    //把內存圖片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請求服務,調用前面的JAVA類,生成圖片,再通過HTML文檔,將圖片加載到頁面來。

其次Web.xml配置文件還可以用來設置訪問安全目錄文件(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>上述的文章內容就是由錯新技術頻道小編為大家介紹的詳解JSP開發之生成圖片驗證碼的簡單步驟,如果您有更好的內容知識,歡迎來錯新技術頻道網站留言哦。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本亚洲精品在线观看| 色综合久久久888| 欧美日韩aaaa| 国产精品亚洲片夜色在线| 91精品国产免费久久久久久| 91亚洲精品视频| 91情侣偷在线精品国产| 日韩大胆人体377p| 成人免费观看网址| 视频在线观看一区二区| 91精品视频一区| 久久综合色影院| 亚洲综合av影视| 国产精品女人网站| 欧美电影免费播放| 全色精品综合影院| 亚洲精品视频免费| 国产精品日韩久久久久| 欧美成在线观看| 久久精品久久久久久| 欧美日韩精品中文字幕| 欧美亚洲成人网| 国产精品女人网站| 亚洲女人被黑人巨大进入| 国产深夜精品福利| 一区二区三区高清国产| 国产亚洲欧美另类中文| 一区二区三区四区视频| 久久在线精品视频| 国产一区二区三区毛片| 粉嫩av一区二区三区免费野| 国内精品国产三级国产在线专| 免费不卡欧美自拍视频| 欧美日本高清视频| 在线日韩日本国产亚洲| 亚洲色图欧美制服丝袜另类第一页| 精品久久香蕉国产线看观看亚洲| 中文字幕av一区二区三区谷原希美| 国产精品福利网| 色先锋久久影院av| 欧美高清电影在线看| 91国产美女在线观看| 国产不卡一区二区在线播放| 亚洲成人av片| 日韩av在线不卡| 欧美午夜性色大片在线观看| 午夜精品www| www国产亚洲精品久久网站| 最近中文字幕2019免费| 国产精品一区二区三区久久| 久久精品视频在线观看| 亚洲欧美日韩天堂| 亚洲综合中文字幕在线观看| 亚洲一区二区少妇| 九色91av视频| 日韩精品欧美国产精品忘忧草| 欧美色另类天堂2015| 亚洲视频专区在线| 91国产一区在线| 欧美国产中文字幕| 草民午夜欧美限制a级福利片| 国产亚洲aⅴaaaaaa毛片| 欧美黑人xxx| 在线播放国产一区二区三区| 国产精品91在线观看| 98精品国产高清在线xxxx天堂| 久久艳片www.17c.com| 亚洲影院在线看| 国产精品久久91| 亚洲视频网站在线观看| 中文字幕精品久久久久| 国产精品jvid在线观看蜜臀| 国产精品私拍pans大尺度在线| 国产999精品久久久| 午夜精品美女自拍福到在线| 国产精品∨欧美精品v日韩精品| 米奇精品一区二区三区在线观看| 欧美黄色片免费观看| 欧美性猛交xxxx黑人| 91在线高清免费观看| 国产成人综合亚洲| 中文字幕在线看视频国产欧美| 国产亚洲精品久久久| 91在线视频精品| 欧美高清性猛交| 国产精品一区二区3区| 欧美日韩免费区域视频在线观看| 久久国产加勒比精品无码| 97免费视频在线| 国产精品情侣自拍| 狠狠躁18三区二区一区| 午夜美女久久久久爽久久| 亚洲第一偷拍网| 日韩一区视频在线| 亚洲永久在线观看| 亚洲一区亚洲二区亚洲三区| 国产成人综合亚洲| 亚洲男女自偷自拍图片另类| 亚洲国产成人精品电影| 性色av一区二区三区免费| 欧美特黄级在线| 国内精品久久久久久久| 欧美中文在线免费| 国产精品视频播放| 亚洲第一免费网站| 亚洲第一福利网| 国产一区二区三区网站| 日韩av一区在线观看| 精品亚洲一区二区三区在线播放| 国产精品视频专区| 超碰97人人做人人爱少妇| 这里只有精品在线观看| 亚洲国语精品自产拍在线观看| 精品亚洲夜色av98在线观看| 亚洲精品久久久久中文字幕二区| 国产拍精品一二三| 欧美黄网免费在线观看| 日韩在线观看电影| 国产剧情日韩欧美| 久久精品视频在线| 亚洲精品电影网站| 亚洲无av在线中文字幕| 亚洲欧美中文字幕在线一区| 国产精品久久久久久一区二区| 久久亚洲成人精品| 国产91成人在在线播放| 亚洲丁香婷深爱综合| 亚洲国产另类 国产精品国产免费| 亚洲精品v欧美精品v日韩精品| 国产日韩在线免费| 亚洲精品在线看| 亚洲精品一区中文字幕乱码| 色香阁99久久精品久久久| 亚洲国产精品专区久久| 色综合导航网站| 永久免费精品影视网站| 亚洲午夜久久久久久久| 亚洲性猛交xxxxwww| 日本高清+成人网在线观看| 久久精品视频va| 91色p视频在线| 亚洲日本aⅴ片在线观看香蕉| 日韩色av导航| 欧美日韩亚洲一区二区三区| 久久艳片www.17c.com| 日韩欧美国产骚| 红桃视频成人在线观看| 亚洲精品98久久久久久中文字幕| 国内偷自视频区视频综合| 亚洲午夜精品视频| 成人a在线观看| 久久精品亚洲94久久精品| 日韩有码在线播放| 韩国日本不卡在线| 欧美日韩不卡合集视频| 福利视频第一区| 日产日韩在线亚洲欧美| 亚洲欧美日韩国产中文| 久久久av亚洲男天堂| 77777亚洲午夜久久多人| 亚洲人成电影网站色…| 欧美一区在线直播| 国产日韩欧美夫妻视频在线观看| 久久黄色av网站|