1. 程式人生 > 其它 >JAVAWEB中的Reponse動態生成驗證碼輸出到瀏覽器中的大致邏輯以及點選切換驗證碼

JAVAWEB中的Reponse動態生成驗證碼輸出到瀏覽器中的大致邏輯以及點選切換驗證碼

技術標籤:JAVA_WEBservletjava

多說無益,直接上程式碼


package Request;

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 java.awt.*; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; @WebServlet("/responseDemo12") public class ResponseDemo12 extends HttpServlet { int width = 100; int height = 50; @Override protected void doPost(HttpServletRequest req,
HttpServletResponse resp) throws ServletException, IOException { // 1、建立一物件,在記憶體中畫圖(驗證碼的圖片物件) BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); // 2、美化圖片 // 2.1、填充背景色 Graphics g = image.getGraphics(); g.setColor(Color.pink); g.
fillRect(0,0,width,height); // 2.2、話邊框 g.setColor(Color.blue); g.drawRect(0,0,width-1,height-1); // 2.3 寫驗證碼 String str = "abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; // 建立一個隨機類 Random random = new Random(); // 獲取字元 int x = 10; for(int i=0;i<4;i++) { int index = random.nextInt(str.length()); String ch = str.charAt(index)+""; g.drawString(ch,width/5*(i+1),height/2); x+=5; } // 2.4畫干擾線 for(int i=0;i<10;i++) { int point1 = random.nextInt(width); int point2 = random.nextInt(width); int point3 = random.nextInt(width); int point4 = random.nextInt(width); g.setColor(Color.green); g.drawLine(point1,point2,point3,point4); } // 3、將圖片輸出到頁面展示 ImageIO.write(image, "jpg", resp.getOutputStream()); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req,resp); } }

點選切換,還是直接上程式碼


**注意解決瀏覽器動態快取圖片的問題**
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
    <script>
    /*

               點選超連結或者圖片,換一張
        1、給超連線和圖片繫結單擊事件
        2、重新設定圖片的src屬性值
     */
        window.onload = function () {
        //1、獲取圖片而物件
          var img =   document.getElementById("checkCode");
        //2、給image繫結單擊事
            img.onclick = function () {
                //加事件戳
                var date = new Date().getTime();
                img.src="/responseDemo12?"+date; //解決瀏覽本地快取,圖片不切換
            }

            var change  = document.getElementById("change");
            change.onclick = function () {
                var date = new Date().getTime();
                img.src="/responseDemo12?"+date;
            }
        }

    </script>
<body>
    <img id="checkCode" src="/responseDemo12" />
    <a id="change" href="">看不清換一張</a>
</body>
</html>

效果圖
在這裡插入圖片描述

此程式碼根據視訊所學進行記錄,只瞭解大致邏輯,具體美觀程式碼可上網檢視


禁止轉載,若有侵權,將進行追究

若侵權他人,請聯絡我,進行刪除,謝謝

來自一個寫程式碼的小哥哥

若有錯誤,請聯絡我,進行修改


寫程式碼,掙錢,努力,掙錢,run,run,run