java web中圖片驗證碼功能的簡單實現方法_java

來源:互聯網
上載者:User

使用者在註冊網站資訊的時候基本上都要資料驗證碼驗證。那麼圖片驗證碼功能該如何?呢?

大概步驟是:

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中圖片驗證碼功能的簡單實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.