jsp 验证码以及验证码局部刷新
生活随笔
收集整理的這篇文章主要介紹了
jsp 验证码以及验证码局部刷新
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.驗證碼的代碼是在網上搜羅的,是底紋亂線類的數字驗證:
authcode.jsp: 每次調用都會在 session 中添加一個屬性,驗證用戶輸入是否正確是只需再取出和輸入內容比較即可
<%@ page contentType="image/JPEG" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="GBK"%> <%!Color getRandColor(int fc, int bc) {//給定范圍獲得隨機顏色 Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); }%> <% //設置頁面不緩存 response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); // 在內存中創建圖象 int width = 60, height = 20; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // 獲取圖形上下文 Graphics g = image.getGraphics(); //生成隨機類 Random random = new Random(); // 設定背景色 g.setColor(getRandColor(200, 250)); g.fillRect(0, 0, width, height); //設定字體 g.setFont(new Font("Times New Roman", Font.PLAIN, 18)); //畫邊框 //g.setColor(new Color()); //g.drawRect(0,0,width-1,height-1); // 隨機產生155條干擾線,使圖象中的認證碼不易被其它程序探測到 g.setColor(getRandColor(160, 200)); for (int i = 0; i < 100; i++) { int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x + xl, y + yl); } // 取隨機產生的認證碼(4位數字) String sRand = "";for (int i = 0; i < 4; i++) { String rand = String.valueOf(random.nextInt(10)); sRand += rand; // 將認證碼顯示到圖象中 g.setColor(new Color(20 + random.nextInt(110), 20 + random .nextInt(110), 20 + random.nextInt(110)));//調用函數出來的顏色相同,可能是因為種子太接近,所以只能直接生成 g.drawString(rand, 13 * i + 6, 16); } // 將認證碼存入SESSION session.setAttribute("code", sRand); // 圖象生效 g.dispose(); // 輸出圖象到頁面 ImageIO.write(image, "JPEG", response.getOutputStream()); %>
2. 調用以及刷新:
<form action="welcome.jsp" method="post" name="loginform">輸入驗證碼:<input type="text" name="authcode" maxlength="4" size="10"><img id="codeimg" name="codeimg" border=0 src="authcode.jsp"><a href="javascript:reloadImage('authcode.jsp')">看不清</a><br/></form> </center><script language="javascript" type="text/javascript">function reloadImage(imgurl){var getimagecode=document.getElementById("codeimg");getimagecode.src= imgurl + "?id=" + Math.random();}</script>總結
以上是生活随笔為你收集整理的jsp 验证码以及验证码局部刷新的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html hr线的样式
- 下一篇: java获取文件夹下所有文件的名称