java刷新验证码_java生成验证码并可刷新

手心创建一个简单的页面来显示所创建的验证码

用户名:

密码:

验证码1:

验证码2:

验证码3:

window.οnlοad=function(){

changePicture1();

changePicture2();

changePicture3();

};

function changePicture1(){

$("#checkcode1").attr("src","servlet/CheckCode?code="+Math.random());

}

function changePicture2(){

/* var arry=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q",

"R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9"];

var len=arry.length;

var code="";

for(i=0;i<=4;i++){

var index=Math.floor(Math.random()*len);

code+=arry[index];

} */

//alert(code);

$("#checkcode2").attr("src","servlet/ImageServlet?code="+Math.random());

}

function changePicture3(){

$("#checkcode3").attr("src","servlet/graphicsImage?code="+Math.random());

}

function loginPerson(){

var name=document.getElementById("name").value;

var password=document.getElementById("password").value;

if(name==""||password==""){

alert("账户名或密码不能为空");

$("#spantext").html("账户名或密码不能为空");

}else{

$.ajax({

type : "post",

url : "./loginName.mvc?name="+name+"&password="+password,

success : function(data){

alert(data);

var obj=eval("("+data+")");

var message=obj.code;

//var name=obj.name;

//var password=obj.password;

alert(message);

//alert(name);

//alert(password);

},

error : function(data){

$("#spantext").html("网络错误");

}

});

}

}

在这里写有三个生成验证码的类,其实他们的本质是一样的  ,都是类似的

8f900a89c6347c561fdf2122f13be562.png创建的第一个验证码

961ddebeb323a10fe0623af514929fc1.png

packagecom.chinasoft.ssm.servlet;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.io.OutputStream;importjava.io.PrintWriter;importjava.util.Random;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.sun.image.codec.jpeg.JPEGCodec;importcom.sun.image.codec.jpeg.JPEGImageEncoder;public class CheckCode extendsHttpServlet {public voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

doPost(request,response);

}public voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

response.setContentType("image/jpeg");//图片的内存映像

BufferedImage image = new BufferedImage(60, 20,BufferedImage.TYPE_INT_BGR);//获取画笔对象

Graphics g =image.getGraphics();//随机变换图片的颜色

Random r = newRandom();

g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)));//开始绘制图片

g.fillRect(0, 0, 60, 20);//将画笔颜色清零

g.setColor(new Color(0,0,0));

Font font= new Font("Verdana", Font.ITALIC|Font.BOLD, 16);

g.setFont(font);

String number= String.valueOf(r.nextInt(99999));

HttpSession session=request.getSession();

session.setAttribute("number", number);

g.drawString(number,5, 15);

g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255)));//压缩jpeg格式转换为输出流的形式

OutputStream os =response.getOutputStream();//把输出流对象中的图像信息编码

JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(os);//向创建对象时指定的输出流输出

encoder.encode(image);

os.flush();

os.close();

}/*** Initialization of the servlet.

*

*@throwsServletException if an error occurs*/

public void init() throwsServletException {//Put your code here

}

}

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagecom.chinasoft.ssm.servlet;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.io.OutputStream;importjava.util.Random;importjavax.imageio.ImageIO;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.sun.image.codec.jpeg.JPEGCodec;importcom.sun.image.codec.jpeg.JPEGImageEncoder;public class ImageServlet extendsHttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {//TODO Auto-generated method stub

doPost(request,response);

}public void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {//TODO Auto-generated method stub

String ch1= (String) request.getParameter("code");

System.out.println(ch1);

response.setContentType("image/jpeg");//图片的内存映像

BufferedImage bi=new BufferedImage(68, 22,BufferedImage.TYPE_INT_RGB);//获得画笔对象

Graphics g=bi.getGraphics();//图片的颜色选择

Color c=new Color(200,150,255);

g.setColor(c);//开始绘制图片

g.fillRect(0, 0, 68, 22);char[] ch="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();

Random r=newRandom();int len=ch.length;intindex;

StringBuffer sb=newStringBuffer();for(int i=0;i<4;i++)

{//获取一个随机数

index=r.nextInt(len);//给字体设置颜色

Font font = new Font("Verdana", Font.ITALIC|Font.BOLD, 16);

g.setFont(font);

g.setColor(new Color(r.nextInt(88),r.nextInt(188),r.nextInt(255)));//将所有选择的字体绘画出来

g.drawString(ch[index]+"",(i*15)+3, 18);//将随机生成的验证码添加到可变字符sb中去

sb.append(ch[index]);

}//将生成的验证码对象保存到piccode对应的value中去//request.getSession().setAttribute("piccode", sb.toString());//使用给定的支持格式将图像BufferedImage的bi对象写入到响应输出流当中//ImageIO.write(bi, "JPG", response.getOutputStream());

OutputStream os=response.getOutputStream();

JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(os);//向创建对象时指定的输出流输出

encoder.encode(bi);

os.flush();

os.close();

}

}

创建的第二个验证码

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagecom.chinasoft.ssm.servlet;importjava.awt.AlphaComposite;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics2D;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.Random;importjavax.imageio.ImageIO;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class graphicsImage extendsHttpServlet {public voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

doPost(request,response);

}public voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {char[] strs = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();

BufferedImage bi= new BufferedImage(150,40,BufferedImage.TYPE_INT_RGB);

Graphics2D g=(Graphics2D)bi.getGraphics();

Random num=newRandom();

Color color ;int len =strs.length;

g.setColor(Color.WHITE);

g.fillRect(0,0,150,40);//随机画干扰的蛋蛋

for(int i=0;i<15;i++){

color=new Color(150,100, 250);

g.setColor(color);//画蛋蛋,有蛋的生活才精彩

g.drawOval(num.nextInt(150), num.nextInt(40), 5+num.nextInt(10), 5+num.nextInt(10));

color= null;

}

Font font= new Font("Verdana", Font.ITALIC|Font.BOLD, 28);

g.setFont(font);/*画字符串*/

for(int i=0;i<6;i++)

{int index=num.nextInt(len);//指定透明度

AlphaComposite ac3 = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.7f);

g.setComposite(ac3);//对每个字符都用随机颜色

color = new Color(20 + num.nextInt(110), 20 + num.nextInt(110), 20 + num.nextInt(110));

g.setColor(color);

g.drawString(strs[index]+"",(i*15)+40, 40-4);

color= null;

ac3= null;

}

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

}public void init() throwsServletException {//Put your code here

}

}

创建的第三个验证码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值