当前位置: 首页 > 图文教程 > 网络编程 > JSP > JSP中图片验证的实现

JSP
jsp计数器制作
用jsp编写文件上载
基于JSP的动态网站开发技术
JSP由浅入深(3)—— 通过表达式增加动态内容
JSP由浅入深(5)—— Scriptlets和HTML的混合
JSP由浅入深(1)—— 熟悉JSP服务器
JSP由浅入深(12)—— 表单编辑
JSP由浅入深(11)—— 标记库
JSP由浅入深(10)—— Beans and Forms处理
JSP由浅入深(9)—— JSP Sessions
JSP由浅入深(8)—— JSP Tags
JSP由浅入深(6)—— JSP声明
JSP由浅入深(4)—— Scriptlets
JSP由浅入深(2)—— 第一个JSP
JSP由浅入深(7)—— JSP Directives
JSP中的字符替换函数 str_replace() 实现!
把一张图片变形扭曲成各种不同的长宽
用JSP编写通用信息发布程序
Java Servlet及Cookie的使用
Apache+Servlet+Jsp环境设置(上)

JSP中图片验证的实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-02   浏览: 76 ::
收藏到网摘: n/a

[前言]:图片验证在有关注册和发表留言经常用到.我在此用jsp写了个.供大家参考. 其中 com.sun.image 不是java的标准包.需要另外下载.相关地址为:

  http://java.sun.com/products/java-media/jai/

  1. random.jsp (产生四位的随机字符,由0-9,a-z,A-Z构成.并把最终字符串放到session中保存以让后续页面验证真伪)

  代码如下:

<%@ page autoFlush="false" import="java.util.*,java.awt.*,java.awt.image.*,
com.sun.image.codec.jpeg.*,java.util.*"%>

<%@ page import="" contentType="text/html; charset=gb2312"%>

<%

String chose=
"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char display[]={'0',' ','0',' ','0',' ','0'},ran[]={'0','0','0','0'},temp;
Random rand=new Random();
for(int i=0;i<4;i++)

{
temp=chose.charAt(rand.nextInt(chose.length()));
display[i*2]=temp;
ran[i]=temp;

}



String random=String.valueOf(display);
session.setAttribute("random",String.valueOf(ran));

%>

<%
out.clear();

response.setContentType("image/jpeg");

response.addHeader("pragma","NO-cache");

response.addHeader("Cache-Control","no-cache");

response.addDateHeader("Expries",0);

int width=47, height=15;

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

Graphics g = image.getGraphics();

//以下填充背景颜色

g.setColor(Color.GREEN);

g.fillRect(0, 0, width, height);

//设置字体颜色

g.setColor(Color.RED);

g.drawString(random,3,10);

g.dispose();

ServletOutputStream outStream = response.getOutputStream();

JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(outStream);

encoder.encode(image);

outStream.close();

%>