生成随机数验证码的工具类(from韩顺平)
生成随机数验证码的工具类
package com.cx;
//生成随机数的图片
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random; import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class CreateCode extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { //7.禁止浏览器缓存随机图片
response.setDateHeader("Expires", -1);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache"); //6.通知客户机以图片方式打开发送过去的数据
response.setHeader("Content-Type", "image/jpeg");
//1.在内存中创建一副图片
BufferedImage image=new BufferedImage(80, 30, BufferedImage.TYPE_INT_RGB);
//2.在图片上写数据
Graphics g=image.getGraphics(); //设背景色
g.setColor(Color.WHITE);
g.fillRect(0, 0, 80, 30); //3.设置写入数据的颜色和字体
g.setColor(Color.BLACK);
g.setFont(new Font(null,Font.BOLD, 20)); //4.向图片上写数据
String num=makeNum();
//将随机生成的数值保存到session
request.getSession().setAttribute("checkcode", num);
g.drawString(num, 0, 20); //5.把写好的数据的图片输出给浏览器
ImageIO.write(image, "jpg", response.getOutputStream()); }
//该函数生成随机7位数
public String makeNum(){
Random r=new Random();
//这里9999999可以生成7位
String num=r.nextInt(9999)+"";
StringBuffer sb=new StringBuffer();
//如果不够4位,前面不补零
for(int i=0;i<4-num.length();i++){
sb.append("0");
}
num=sb.toString()+num;
return num;
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { this.doGet(request, response);
} }
//使用
//<img src="/验证码的url"/>
生成随机数验证码的工具类(from韩顺平)的更多相关文章
- java生成图片验证码(转)--封装生成图片验证码的工具类
博客部分内容转载自 LonlySnow的博客:后台java 实现验证码生成 1.controller方法 @RequestMapping(value = "/verifycode/img&q ...
- iOS开发——生成二维码——工具类
啥也不说,直接上源码,拷过去就能用.生成二维码的工具类使用方法在ProduceQRCode.h里有示例说明 分别将下面的ProduceQRCode.h和ProduceQRCode.m对应的代码考到自己 ...
- java生成二维码工具类
package com.runtime.extend.utils.CodeCreate; import com.google.zxing.*;import com.google.zxing.commo ...
- Java(日期、随机数、系统工具类)
Date类 一般用于获取时间 Date date1 = new Date();//获取当前系统时间 Date date2 = new Date(10000);//获取从标准基准时间起10000毫秒的时 ...
- C#生成漂亮验证码完整代码类
using System;using System.Web;using System.Drawing;using System.Security.Cryptography; namespace Dot ...
- java生成兑换码礼包码--工具类
import java.util.HashSet; import java.util.Random; import java.util.Set; public class GenSerial { pr ...
- JavaWeb学习day6-Response初学2(生成随机数验证码)
1 public class imageServlet extends HttpServlet { 2 @Override 3 protected void doGet(HttpServletRequ ...
- Mybitis根据工具类反射数据库生成映射+整合springboot
一 反向生成数据库mapper的工具类: 添加依赖 <dependency> <groupId>org.mybatis.generator</groupId> &l ...
- (转)Android 之生成图形验证码
import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; impor ...
随机推荐
- 学生党的Surface Pro 5乞丐版使用体验
因为已经装了台式机,大一开学时买的厚重且续航差的华硕游戏本(i5+GTX950M+8G)对我这个考研党已经显得不合适了.恰巧有一同学笔记本坏了,我便将游戏本低价出了,然后用两三倍的价格,入手了surf ...
- JAXB解析xml 的注解说明
1.将 xml 文件中的各个节点和属性信息创建对应的Java模型 2.在Java模型中的创建与 xml 文件对应的节点和属性需要用注解来表示@XmlRootElement 将一个Java类映射 ...
- Java多线程(六)守护进程
守护进程:当进程中不存在非守护线程了,则守护线程自动销毁: public class DaemonThread extends Thread{ private int i =0; public voi ...
- python自动化学习笔记11-自动化测试UTP框架
前面基本的unittest及ddt已经学过了,现在我们系统把这些知识结合起来,写一个简单的UTP自动化测试框架: 我们先来建基础目录,首先新建一个项目,项目下建父目录UTP,conf目录,用来存放配置 ...
- LIS UVA 10534 Wavio Sequence
题目传送门 题意:找对称的,形如:123454321 子序列的最长长度 分析:LIS的nlogn的做法,首先从前扫到尾,记录每个位置的最长上升子序列,从后扫到头同理.因为是对称的,所以取较小值*2-1 ...
- 构造 Codeforces Round #107 (Div. 2) B. Phone Numbers
题目传送门 /* 构造:结构体排个序,写的有些啰嗦,主要想用用流,少些了判断条件WA好几次:( */ #include <cstdio> #include <algorithm> ...
- Windows 2008中部署dll到GAC
两种方法: 1 gacutil.exe 2 直接拖动DLL到GAC (此种方式要关闭UAC,否则提示"Access is Denied")
- ajax怎么理解?
Ajix是创建交互式网页的前端网页开发技术,不是一种语言,ajax是基于http来传输数据的,他是利用浏览器提供操作http的接口(XMLHttpRequest或者activeXobject),来操作 ...
- Table标题行冻结,数据行滚动的一种方式
这段时间在做Table标题行冻结,数据行滚动,虽然能实现,但也遇到一些问题,记录下来. 首先说说实现,实现其实不难,估计很多人都能想象出来,那就是标题行与内容行分离.我是这么做的,用两个表格,一个只有 ...
- LR接口测试---socket
前提条件: 编译:javac TcpServer.java 启动:java TcpServer ============================================ 代码示例: # ...