亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    jsp驗證碼實現(xiàn)源代碼

     

        在開發(fā)中驗證碼是比較常用到有效防止這種問題對某一個特定注冊用戶用特定程序暴力破解方式進行不斷的登陸嘗試的方式。

        此演示程序包括三個文件:
        1.login.jsp:登錄頁面
        2.code.jsp:生成驗證碼圖片頁面
        3.check.jsp:驗證結(jié)果


        code.jsp
        <%@ page contentType=”image/jpeg” import=”java.awt.*,
        java.awt.image.*,java.util.*,javax.imageio.*” %>
        <%
        // 在內(nèi)存中創(chuàng)建圖象
        int width=60, height=20;
        BufferedImage image = new BufferedImage(width, height,
        BufferedImage.TYPE_INT_RGB);
        // 獲取圖形上下文
        Graphics g = image.getGraphics();
        // 設(shè)定背景色
        g.setColor(new Color(0xDCDCDC));
        g.fillRect(0, 0, width, height);
        //畫邊框
        g.setColor(Color.black);
        g.drawRect(0,0,width-1,height-1);
        // 隨機產(chǎn)生的認證碼(4位數(shù)字)
        String rand =””+ (Math.random()*10000);
        rand = rand.substring(0,rand.indexOf(”.”));
        switch(rand.length())
        {
        case 1: rand = “000”+rand; break;
        case 2: rand = “00”+rand; break;
        case 3: rand = “0”+rand; break;
        default: rand = rand.substring(0,4); break;
        }
        // 將認證碼存入SESSION
        session.setAttribute(”rand”,rand);
        // 將認證碼顯示到圖象中
        g.setColor(Color.black);
        Integer tempNumber = new Integer(rand);
        String numberStr = tempNumber.toString();
        g.setFont(new Font(”Atlantic Inline”,Font.PLAIN,18));
        String Str = numberStr.substring(0,1);
        g.drawString(Str,8,17);
        Str = numberStr.substring(1,2);
        g.drawString(Str,20,15);
        Str = numberStr.substring(2,3);
        g.drawString(Str,35,18);
        Str = numberStr.substring(3,4);
        g.drawString(Str,45,15);
        // 隨機產(chǎn)生88個干擾點,使圖象中的認證碼不易被其它程序探測到
        Random random = new Random();
        for (int i=0;i<20;i++)
        {
        int x = random.nextInt(width);
        int y = random.nextInt(height);
        g.drawOval(x,y,0,0);
        }

        // 圖象生效
        g.dispose();
        // 輸出圖象到頁面
        ImageIO.write(image, “JPEG”, response.getOutputStream());
        //在頁面上調(diào)用   <img src=”/yourPath/checkNum.jsp” />
        %>
        login.jsp
        <%@ page contentType=”text/html;charset=gb2312″ %>
        <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
        <html>
        <head>
        <title>認證碼輸入頁面</title>
        <meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
        <META HTTP-EQUIV=”Pragma” CONTENT=”no-cache”>
        <META HTTP-EQUIV=”Cache-Control” CONTENT=”no-cache”>
        <META HTTP-EQUIV=”Expires” CONTENT=”0″>
        </head>
        <body>
        <form method=post action=”check.jsp”>
        <table>
        <tr>
        <td align=left>系統(tǒng)產(chǎn)生的認證碼:</td>
        <td><img border=0 src=”code.jsp”></td>
        </tr>
        <tr>
        <td align=left>輸入上面的認證碼:</td>
        <td><input type=text name=rand maxlength=4 value=””></td>
        </tr>
        <tr>
        <td colspan=2 align=center><input type=submit value=”提交檢測”></td>
        </tr>
        </form>
        </body>
        </html>
        check.jsp
        <%@ page contentType=”text/html; charset=gb2312″ language=”java” import=”java.sql.*” errorPage=”” %>
        <html>
        <head>
        <title>認證碼驗證頁面</title>
        <meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
        <META HTTP-EQUIV=”Pragma” CONTENT=”no-cache”>
        <META HTTP-EQUIV=”Cache-Control” CONTENT=”no-cache”>
        <META HTTP-EQUIV=”Expires” CONTENT=”0″>
        </head>
        <body>
        <%
        String rand = (String)session.getAttribute(”rand”);
        String input = request.getParameter(”rand”);
        %>
        系統(tǒng)產(chǎn)生的認證碼為: <%= rand %><br>
        您輸入的認證碼為: <%= input %><br>
        <br>
        <%
        if (rand.equals(input)) {
        %>
        <font color=green>輸入相同,認證成功!</font>
        <%
        } else {
        %>
        <font color=red>輸入不同,認證失敗!</font>
        <%
        }
        %>
        </body>
        </html>


        以上代碼可以實現(xiàn),我驗證過了,均可正常使用。

     

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號