日期:2014-05-18  浏览次数:20696 次

怎么才能让html页面生成随即图片验证码
就想这个网站
https://www.goodhope.com.cn/identifyImage.html

没懂html是怎么弄来的
希望大家给点意见

谢谢

------解决方案--------------------
这应该不是真正的html文件。不要被扩展名误导。
------解决方案--------------------
其实是个图片,只不过把映射给改了
------解决方案--------------------
http://topic.csdn.net/t/20050802/13/4183402.html
------解决方案--------------------
identifyImage.html这东东其实是个servlet,名字具有迷惑性.
------解决方案--------------------
identifyImage.html这个东西可以映射的,不一定就是html。
------解决方案--------------------
好久,不太清楚了,好象是产生随即的数值,然后套一个层加个图片,再进行验证吧,希望有更好的解释!
------解决方案--------------------
<%@ page contentType= "image/jpeg " import= "java.awt.*,
java.awt.image.*,java.util.*,javax.imageio.* " %> <%!
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc> 255) fc=255;
if(bc> 255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%> <%
//设置页面不缓存
response.setHeader( "Pragma ", "No-cache ");
response.setHeader( "Cache-Control ", "no-cache ");
response.setDateHeader( "Expires ", 0);

// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取图形上下文
Graphics g = image.getGraphics();

//生成随机类
Random random = new Random();

// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);

//设定字体
g.setFont(new Font( "Times New Roman ",Font.PLAIN,18));

//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);

// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i <155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}

// 取随机产生的认证码(4位数字)
String sRand= " ";
for (int i=0;i <4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}

// 将认证码存入SESSION
session.setAttribute( "sms.vertify ",sRand);

// 图象生效
g.dispose();

response.reset();
response.setContentType( "image/jpeg ");
// 输出图象到页面
ImageIO.write(image, "JPEG ", response.getOutputStream());


------解决方案--------------------
■■国产类似tomcat的 "kangaroo_web_egg "web服务器正式发布,免费且开源

在java中间件中大部分人都知道tomcat,一个开源免费的web服务器,不过今天要介绍的是一个国内自主开发的web服务器

,它的名字叫“kangaroo_web_eggkangaroo_web_egg”,同样是开源免费的,但是它所运行的不是JSP脚本语言,而是自己开发的DQM脚本语言,

其拥有自己的容器用于执行DQM动态文件,我们称之为DQM容器。DQM很类似与JSP,但是比JSP来的简单,所以如果你会JSP那么

只需要稍看DQM就会理解。
   那么这个服务器有什么特点呢?
  1、不需要配置XML文件:以前我们 使用J2EE服务器时都时常需要配置XML文件,而kangaroo_web_egg则不需要,即使使用MVC