<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 后端驗證碼文件 ```java package web; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class CheckcodeServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("CheckcodeServlet's service"); /* * 一、繪圖 */ /* * step1,創建一個內存映像對象(畫布) * BufferedImage(寬度,高度,類型) */ BufferedImage image = new BufferedImage(80,30, BufferedImage.TYPE_INT_RGB); /* * step2,獲得一個畫筆 */ Graphics g = image.getGraphics(); /* * step3,給筆設置顏色 */ Random r = new Random(); g.setColor(new Color(255,255,255)); /* * step4,給畫布設置背景顏色 * fillRect(x,y,width,height) */ g.fillRect(0, 0, 80, 30); /* * step5,繪圖 */ g.setColor(new Color(r.nextInt(255), r.nextInt(255),r.nextInt(255))); //Font(字體,風格,大小) g.setFont(new Font(null,Font.ITALIC,22)); String number = getNumber(5); //將number綁訂到session對象上 HttpSession session = request.getSession(); session.setAttribute("number", number); //drawString(String,x,y) x,y是左下角的坐標 g.drawString(number, 2, 23); //step6,加一些干擾線 for(int i=0;i<6;i++){ g.drawLine(r.nextInt(80), r.nextInt(30), r.nextInt(80), r.nextInt(30)); } /* * 二、將圖片壓縮并發送給瀏覽器 */ //設置content-type消息頭,告訴 //瀏覽器返回的是圖片 response.setContentType("image/jpeg"); //一定要獲得字節輸出流 OutputStream ops = response.getOutputStream(); //write方法會對原始圖片(image)按照 //指定的壓縮算法(jpeg)進行壓縮,并且 //將壓縮之后的數據輸出到指定的流(ops)。 javax.imageio.ImageIO.write(image, "jpeg", ops); ops.close(); } /* * 生成一個驗證碼,該驗證碼由"A~Z","0~9"中 隨機選取5個字符組成 */ private String getNumber(int size) { String rs = ""; String strs = "ABCDEFGHIJKLMNOPQ" + "RSTUVWXYZ0123456789"; Random r = new Random(); for(int i=0;i<size;i++){ rs += strs.charAt(r.nextInt(strs.length())); } return rs; } } ``` ## 前臺的驗證碼的獲取方式 ``` $(this).find( "img").attr("src" ,"../getcode.htm?num=" +num); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看