java web中图片验证码功能实现
来源:互联网 发布:java运行原理 编辑:程序博客网 时间:2024/06/05 19:33
用户在注册网站信息的时候基本上都要数据验证码验证。那么图片验证码功能该如何实现呢?
大概步骤是:
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}}
0 0
- java web中图片验证码功能实现
- java web中图片验证码功能实现
- Java web图片验证功能实现二
- Java web图片验证功能实现二
- java web 生成图片验证码的功能实现
- java web验证码功能实现
- java web开发:servlet中图形验证码功能的实现
- java web中验证码的实现
- Java Web中验证码的实现
- Shiro在web应用中实现验证码功能
- java web servlet来实现验证码的功能
- java Web图片验证码
- java Web图片验证码
- Java实现验证码功能
- mvc实现图片验证码功能
- ssh生成图片验证码功能实现
- Java实现验证码验证功能
- Java实现验证码验证功能
- Mysql 存储引擎
- C++构造函数调用虚函数
- 杭电2524 矩形A + B(找规律,递推 水题)
- 64位WIN7+oracle11g+plsql安装
- 4.4 服务器上的 Git - 架设服务器
- java web中图片验证码功能实现
- linux文件处理命令
- android使用AChartEngine 使用动态图
- 使用Gradle部署jar包到Maven中央库
- Binary Tree Level Order Traversal II
- 我在工作中遇到的任务栈bug(fragment跳转失常,数据不加载或闪现老数据)
- Linux内核启动过程和Bootloader
- QML学习笔记
- linux字符设备驱动-------beep驱动