JSP驗證碼,驗證碼

來源:互聯網
上載者:User

JSP驗證碼,驗證碼

在JSP頁面上寫隨機的4位元驗證碼

執行個體化BufferedImage類 得到Graphics畫筆給圖片填充背景色 然後寫上隨機數和100個幹擾點

用scropt實現重新整理驗證碼

疑問:視頻和書上的DrawString 方法不能用 也不知道怎麼回事 把String轉成了char調用了另外一個drawChars的方法才對

<%@ page language="java" contentType="text/html; charset=GB2312"import = "java.awt.image.*"import = "java.util.*"import = "java.awt.*"import = "javax.imageio.*"import = "java.lang.*"%><html><head></head><body><% response.setHeader("Cache-Control", "no-cache");BufferedImage image = new BufferedImage(60, 20, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); g.setColor(new Color(200, 200, 200));g.fillRect(0, 0, 60, 20);Random rd = new Random(); int r = rd.nextInt(8999) + 1000; String rand = String.valueOf(r); session.setAttribute("rand", rand); g.setColor(Color.BLACK); g.setFont(new Font("", Font.PLAIN, 20)); g.drawChars(rand.toCharArray(), 0, rand.length(), 10, 17); for(int i = 0; i < 100; i++){ int x = rd.nextInt(60); int y = rd.nextInt(20); g.drawOval(x, y, 1, 1); } ImageIO.write(image, "JPEG", response.getOutputStream()); %></body></html>


 


jsp中顯示驗證碼的代碼怎寫?

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.imageio.ImageIO;/*產生驗證碼圖片*/public class MakeCertPic { //驗證碼圖片中可以出現的字元集,可以根據需要修改 private char mapTable[]={ 'a','b','c','d','e','f', 'g','h','i','j','k','l', 'm','n','o','p','q','r', 's','t','u','v','w','x', 'y','z','0','1','2','3', '4','5','6','7','8','9' };/* 功能:產生彩色驗證碼圖片 參數wedth為產生圖片的寬度,參數height為產生圖片的高度,參數os為頁面的輸出資料流*/ public String getCertPic(int width,int height,OutputStream os){ if(width<=0) width=60; if(height<=0) height=20; BufferedImage image= new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //擷取圖形上下文 Graphics g = image.getGraphics(); //設定背景顏色 g.setColor(new Color(0xDCDCDC)); g.fillRect(0,0,width,height); //畫邊框 g.setColor(Color.black); g.drawRect(0,0,width-1,height-1); //隨機產生的驗證碼 String strEnsure = ""; //4代表4為驗證碼,如果要產生更多位的驗證碼,則加大數值 for(int i = 0;i<4;++i){ strEnsure += mapTable[(int) (mapTable.length*Math.random())]; } //將認證碼顯示到映像中,如果要產生更多位的驗證碼,增加drawString語句 g.......餘下全文>>
 
用jsp做登入時的驗證碼重新整理問題

<img id="yanzheng" border="0" src="manage/yanzheng.jsp"/><a href="" onclick="document.getElementById('yanzheng').src='../admin/yanzheng.jsp?'+new Date().getTime()">看不清</a>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.