java生成验证码步骤归纳总结

1、serialVersionUID

    private static final long serialVersionUID = -8501285780349046114L;

Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。

相当于java类的身份证。主要用于版本控制。

2、BufferedImage类

——BufferedImage 子类描述具有可访问图像数据缓冲区的 Image。

TYPE_INT_RGB

表示一个图像,它具有合成整数像素的 8 位 RGB 颜色分量。

——getGraphics()

此方法返回 Graphics2D,但此处是出于向后兼容性的考虑。

3、request.getParameter()

request.getParameter() 方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。

request.getParameter()方法返回String类型的数据。

4、String... excludeProperty表示不定参数,也就是调用这个方法的时候这里可以传入多个String对象(可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。

注意:可变参数必须位于最后一项eg: private String drawRandomNum(Graphics2D g,String... createTypeFlag))

5、Graphics类

Graphics 类是所有图形上下文的抽象基类,允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制。

【步骤】:

    一、在内存中创建一张图片;

BufferedImage bi = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);

  ——BufferedImage 子类描述具有可访问图像数据缓冲区的 Image。      

TYPE_INT_RGB   表示一个图像,它具有合成整数像素的 8 位 RGB 颜色分量。

 ——getGraphics()

  此方法返回 Graphics2D,但此处是出于向后兼容性的考虑。

二、得到图片;

Graphics g = bi.getGraphics();

三、设置图片的背景色;

setBackGround(g);

四、设置图片的边框;

setBorder(g);

五、在图片上画干扰线;

drawRandomLine(g);

六、写在图片上随机数;

String random = drawRandomNum((Graphics2D) g,createTypeFlag);//根据客户端传递的createTypeFlag

七、将随机数存在session中;

request.getSession().setAttribute("checkcode",random);

八、设置响应头通知浏览器以图片的形式打开;

response.setContentType("image/jpeg");//等同于res[onse.setHeader("Content-Type","image/jpeg");

九、设置响应头控制浏览器不要缓存;

  response.setDateHeader("expries",-1);
  response.setHeader("Cache-Control","no-cache");
  response.setHeader("Pragma","no-cache");

——setDateHeader

  public void setDateHeader(java.lang.String name,long date)

Parameters:

name - the name of the header to set

date - the assigned date value

——setHeader

            public void setHeader(java.lang.String name, java.lang.String value)

Parameters:

name - the name of the header

value - the header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)

    十、将图片写给浏览器;

        ImageIO.write(bi,"jpg",response.getOutputStream());

——参数:

im - 要写入的 RenderedImage。

formatName - 包含格式非正式名称的 String。

output - 将在其中写入数据的 OutputStream。

抛出:

IllegalArgumentException - 如果任何参数为 null。

IOException - 如果在写入过程中发生错误。

希望本篇文章对您有所帮助

(0)

相关推荐

  • java图形验证码生成工具类 web页面校验验证码

    最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善. 验证码生成器: import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Date; import ja

  • Java实现验证码验证功能

    Java如何实现验证码验证功能呢?日常生活中,验证码随处可见,他可以在一定程度上保护账号安全,那么他是怎么实现的呢? Java实现验证码验证功能其实非常简单:用到了一个Graphics类在画板上绘制字母,随机选取一定数量的字母随机生成,然后在画板上随机生成几条干扰线. 首先,写一个验证码生成帮助类,用来绘制随机字母: <span style="font-size:14px;">import java.awt.Color; import java.awt.Font; impo

  • java Servlet 实现动态验证码图片示例

    整理文档,搜刮出一个java Servlet 实现动态验证码图片的代码,稍微整理精简一下做下分享. package com.hacker; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; i

  • Java web含验证码及权限登录实例代码

    所用到的开发工具为myeclipse10,MySQL数据库. 首先,在myeclipse中新建一个Java web项目. 项目的结构: 数据库结构: 下面将各个包中的代码粘贴出来. com.ningmeng.dao包 package com.ningmeng.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLExcept

  • Java中SSM+Shiro系统登录验证码的实现方法

     先给大家展示下效果图: 1.验证码生成类: import java.util.Random; import java.awt.image.BufferedImage; import java.awt.Graphics; import java.awt.Font; import java.awt.Color; /** * 验证码生成器类,可生成数字.大写.小写字母及三者混合类型的验证码. 支持自定义验证码字符数量: 支持自定义验证码图片的大小: 支持自定义需排除的特殊字符: * 支持自定义干扰线

  • Java验证码图片生成代码

    Java生成验证码图片的具体代码,供大家参考,具体内容如下 1.首先新建一各专门生成验证码图片的类VerifyCode: public class VerifyCode { private int w=70; private int h=35; private Random r=new Random(); //宋体,华文楷书,黑体,华文新魏,华文隶书,微软雅黑,楷体_GB2312,Times New Roman private String [] fontNames={"宋体",&qu

  • java生成验证码步骤归纳总结

    1.serialVersionUID     private static final long serialVersionUID = -8501285780349046114L; Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的. 相当于java类的身份证.主要用于版本控制. 2.BufferedImage类 --BufferedImage 子类描述具有可访问图像数据缓冲区的 Image. TYPE_INT_RGB 表示一个图像,它具有合成整数像素的

  • Java生成验证码

    Java 生成验证码的流程是: 收到请求->生成验证码所用的随机数->使用随机数写出图片->将随机数记录到Session中->输出验证码 Java 验证验证码的流程是: 收到请求->获取用户传过来的验证码数字->验证是否正确->输出验证结果 下面通过一个例子来展示验证码的生成流程,该例子使用基本Java Spring框架的Rest接口,可以使用任何平台来获取验证码: 服务器处理验证码的例子: 1.接收验证码请求: /** * 接收验证码请求 */ @Request

  • Java生成验证码功能实例代码

    页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_test.utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import ja

  • java生成验证码工具类

    java生成验证码工具类,供大家参考,具体内容如下 package com.demo.utils; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.QuadCurve2D; import java.awt.image.BufferedIm

  • java生成验证码图片的方法

    本文实例为大家分享了java生成验证码图片的具体代码,供大家参考,具体内容如下 示例一: import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang.StringUtils; import javax.imageio.ImageIO; import javax.servlet.http.HttpServ

  • Java 生成随机验证码图片的示例

    1.情景展示 登录时,生成随机验证码图片,如何实现?  2.原因分析 后台生成验证码并生成图片返回至前台 3.解决方案 导包 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.Ser

  • java生成图片验证码实例代码

    关于java图片验证码的文章最近更新了不少,帮助大家掌握java验证码的生成技术,下文为大家分享了java生成图片验证码最简单的方法,供大家参考. 现在各行业在定制系统时都会考虑到机器注册,现在最有效的方式就是输入验证.现在的验证方式有很多种: 一.问题验证,其实也是图片验证,在图片上生成问题,然后输入框输入答案. 二.图片验证,输入图片上展示的文字信息. 三.短信验证,比较繁杂,用户也不怎么喜欢. 四.还有就是百度最新的验证方式.图片上生成文字,然后出现一个文字点击框,选择你在验证图片上看到的

  • java生成图片验证码的示例代码

    给大家分享一款java生成验证码的源码,可设置随机字符串,去掉了几个容易混淆的字符,还可以设置验证码位数,比如4位,6位.当然也可以根据前台验证码的位置大小,设置验证码图片的大小.下边是源码分享,直接看吧,很简单! 创建servlet类 import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServ

  • java原生动态生成验证码

    本文实例为大家分享了java原生动态生成验证码的具体代码,供大家参考,具体内容如下 需求描述: 为了防止脚本多次请求,很多时候在注册会用到验证码,我们用java实现 一个图片验证的二维码. 项目结构 只有 标记的这三个文件是用到的 CheckServlet核心代码 package lhw.wanlin.checkimg; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servle

  • 使用java生成字母验证码

    本文实例为大家分享了java生成字母验证码的具体代码,供大家参考,具体内容如下 import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.ut

随机推荐