5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:
性别:秘密
最后登录:2007-04-12
http://august.5d.cn/
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2005/01/10 | 一个简单的网站随机验证码例子(JSP) zt
类别(发现)
|
评论
(0)
|
阅读(863)
|
发表于 17:07
一个简单的网站随机验证码例子(JSP) zt
在当前许多网站上为了防止恶意注册,大都使用了随机注册码来防止这样的事情发生。下面是我写的一个简单的随机码生成的例子,原理是使用Java 2D将在内存中生成的JPG图片输出到页面上。代码如下:
<%@ page autoFlush="false" import="java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*"%>
<%@ page import="org.apache.commons.lang.RandomStringUtils"%>
<%
RandomStringUtils rs=new RandomStringUtils();
String random=rs.randomAlphanumeric(4);
session.setAttribute("random",random);
%>
<%
out.clear();
response.setContentType("image/jpeg");
response.addHeader("pragma","NO-cache");
response.addHeader("Cache-Control","no-cache");
response.addDateHeader("Expries",0);
int width=32, height=12;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
//以下填充背景颜色
g.setColor(Color.WHITE);
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();
%>
将上面的文件保存文random.jsp,随机产生的字符串被放在session中,在登陆或注册过程中将会被验证。
下面是如何调用这个JSP的例子(randomtest.jsp):
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<img src="random.jsp">
</body>
</html>
把这两个文件部署到tomcat下,打开IE,输入http://localhost:8080/APPLICATION_PATH/romdontest.jsp。就可以看到生成的随机码了。
0
评论
Comments
日志分类
首页
[1019]
技术
[317]
English
[3]
下载
[59]
IT业界
[203]
发现
[47]
音乐
[17]
网文
[322]
blog应用
[36]
BLOG参考
[15]