用戶在註冊網站信息的時候基本上都要數據驗證碼驗證。那麼圖片驗證碼功能該如何實現呢?
大概步驟是:
1.在內存中創建緩存圖片
2.設置背景色
3.畫邊框
4.寫字母
5.繪製干擾信息
6.圖片輸出
廢話不多說,直接上代碼
package com.lsgjzhuwei.servlet.response;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;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;/** * Servlet implementation class VerificationCode */@WebServlet(asyncSupported = true, urlPatterns = { "/VerificationCode" })public class VerificationCode extends HttpServlet {private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public VerificationCode() { super(); // TODO Auto-generated constructor stub }/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubint width = 120;int height = 30;//創建一張內存中的緩存圖片BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);///背景色//通過graphics繪製圖像Graphics graphics = bufferedImage.getGraphics();//設置顏色graphics.setColor(Color.yellow);//填充graphics.fillRect(0, 0, width, height);///畫邊框graphics.setColor(Color.blue);graphics.drawRect(0, 0, width-1, height-1);//寫字母String content = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcedfghijklmnopqrstuvwxyz1234567890";Random random = new Random();//設置字體顏色graphics.setColor(Color.red);//設置字體及大小graphics.setFont(new Font("宋體", Font.BOLD, 20));int x=20;int y=20;for(int i = 0; i < 4; i++){int index = random.nextInt(content.length());char letter = content.charAt(index);graphics.drawString(letter+" ", x, y);x = x+20;}//繪製干擾線int x1;int x2;int y1;int y2;graphics.setColor(Color.LIGHT_GRAY);for(int i = 0;i <50;i++){x1=random.nextInt(width);x2=random.nextInt(width);y1=random.nextInt(height);y2=random.nextInt(height);graphics.drawLine(x1, y1, x2, y2);}//將圖片輸出到瀏覽器//將內存的圖片通過瀏覽器輸出流輸出成jpg圖片ImageIO.write(bufferedImage, "jpg", response.getOutputStream());}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub}}以上這篇java web中圖片驗證碼功能的簡單實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。