用JSP文件生成网站验证码

js|验证码

random.jsp文件代码:

<%@ 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=100, height=40;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
//以下填充背景?色
g.setColor(Color.GRAY);
Font DeFont=new Font("SansSerif", Font.PLAIN, 32);
g.setFont(DeFont);
g.fillRect(0, 0, width, height);
//?置字体?色
g.setColor(Color.RED);
g.drawString(random,3,30);
g.dispose();
ServletOutputStream outStream = response.getOutputStream();
JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(outStream);
encoder.encode(image);
outStream.close();
%>

test.jsp文件代码如下:
<%@ page contentType="text/html; charset=UTF-8" 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>

如果不想导入Apache的包可以自己编译下面这个文件
// FrontEnd Plus GUI for JAD
// DeCompiled : RandomStringUtils.class

package org.apache.commons.lang;

import java.util.Random;

public class RandomStringUtils
{

private static final Random RANDOM = new Random();

public RandomStringUtils()
{
}

public static String random(int count)
{
return random(count, false, false);
}

public static String randomAscii(int count)
{
return random(count, 32, 127, false, false);
}

public static String randomAlphabetic(int count)
{
return random(count, true, false);
}

public static String randomAlphanumeric(int count)
{
return random(count, true, true);
}

public static String randomNumeric(int count)
{
return random(count, false, true);
}

public static String random(int count, boolean letters, boolean numbers)
{
return random(count, 0, 0, letters, numbers);
}

public static String random(int count, int start, int end, boolean letters, boolean numbers)
{
return random(count, start, end, letters, numbers, null);
}

public static String random(int count, int start, int end, boolean letters, boolean numbers, char set[])
{
if(start == 0 && end == 0)
{
end = 122;
start = 32;
if(!letters && !numbers)
{
start = 0;
end = 0x7fffffff;
}
}
StringBuffer buffer = new StringBuffer();
int gap = end - start;
while(count-- != 0)
{
char ch;
if(set == null)
ch = (char)(RANDOM.nextInt(gap) + start);
else
ch = set[RANDOM.nextInt(gap) + start];
if(letters && numbers && Character.isLetterOrDigit(ch) || letters && Character.isLetter(ch) || numbers && Character.isDigit(ch) || !letters && !numbers)
buffer.append(ch);
else
count++;
}
return buffer.toString();
}

public static String random(int count, String set)
{
return random(count, set.toCharArray());
}

public static String random(int count, char set[])
{
return random(count, 0, set.length - 1, false, false, set);
}

}

时间: 2024-07-28 15:30:48

用JSP文件生成网站验证码的相关文章

使用ashx文件生成验证码图片

 在vs2005中可以直接创建.ashx文件,其项目叫做一般处理程序,.ashx文件一般用来处理只有返回,二一般不回传的数据,比如动态生成图片,或者文字,以下为清清月儿博客上转载的一个用ashx动态生成验证码图片的代码. //绘制验证码图片ValidateImageHandler.ashx 1 <%@ WebHandler Language="C#" Class="ValidateImageHandler" %> 2  3 using System; 4

JSP动态生成验证码存储在session作用范围内_JSP编程

(1)在登录应用中,为防止恶意登录,常常需要服务器动态生成验证码并存储在session作用范围中,最后以图像形式返回给客户端显示 (2)下边的代码实现的功能:写一个JSP页,动态生成一个验证码,存储在session作用范围内,并以图像形式返回给客户端显示. 另写一个JSP页面,引用此JSP页面生成的验证码: authen.jsp代码如下: <%@ page import="java.awt.*,java.awt.image.*,java.util.*,com.sun.image.codec

运用Jsp技术生成彩色汉字验证码

一些网站采用了字母和数字的验证码,数字和字母加起来一共30多个,如果有心,还是能够通过方法识别出来. 我在网上看到一篇文章"jsp彩色验证码",我进行了加强,生成的验证码内容为汉字,可以方便应用在面向汉语网民的网站认证上. 当然,我还看到别人考虑的几种方法: 1.生成计算题,比如20+34*(23-12)=?,用户必须输入正确的答案才能通过验证,这个想法挺好,但是用户必须打开计算器进行计算,增加了用户的难度 2.问一些常见的问题,比如"人"这个字由几笔组成.这也是不

mysql-请问:用java代码怎样读取MySQL数据库生成JSP文件?谢谢!

问题描述 请问:用java代码怎样读取MySQL数据库生成JSP文件?谢谢! 用java代码怎样读取MySQL数据库生成JSP文件? 解决方案 你是要写一个数据导出的程序吧,程序里面包含数据导出命令,生成文件格式为jsp啊. 解决方案二: 将文件从数据库(MySQL)中进行读取 解决方案三: 不能从后台去数据库去数据然后写到JSP文件?

模板-用sightly写到jsp文件中 生成如图的页面模版 谁会?

问题描述 用sightly写到jsp文件中 生成如图的页面模版 谁会? 用sightly写到jsp文件中 生成如图的页面模板 谁会? 解决方案 http://zhidao.baidu.com/link?url=tnj8_PpyqZkHcIaLanpi51hQOkubzGuDjiIOHIMzLM0cdbs7JVeTKNjRPuRGxw2XrNjdUr_kHuyFd7Y4CvJ4ra

请问:java代码通过io流怎么读取MySQL数据库生成jsp文件?谢谢!

问题描述 请问:java代码通过io流怎么读取MySQL数据库生成jsp文件?谢谢! java代码通过io流怎么读取MySQL数据库生成jsp文件 解决方案 IO读取数据库?!你确定? 最次也得是jdbc吧?要有大神实现我也涨涨姿势.. 或者jdbc读到内存再写成文件,再用IO读到内存写成jsp? 解决方案二: io流读取文件数据,数据库都是sql语句获取的,你这问法不懂, 解决方案三: 回复a877536298: <% String url = "jdbc:mysql://localho

sql-为什么VS express for web 在网站下创建.jsp文件时不能正常打开。

问题描述 为什么VS express for web 在网站下创建.jsp文件时不能正常打开. VS express for web 在网站下创建.jsp文件时不能正常打开,正常的会出现sql的工具蓝,而我的什么都没有,字体颜色也没有变.重装过该软件不不能解决这个问题,求各位大神帮帮忙. 解决方案 vs express for web是用来开发asp.net的,你用它开发jsp干嘛呢?根本都没有那个功能. 解决方案二: 如何使用Visual Studio 2013 for Web Express

Websphere6.1 如何设置保存JSP 编译器生成的 Java 文件

问题描述 请问如何设置保存jsp编译器生成的Java文件,目前在ibm-web-ext.xmi文件中设置<jspAttributesxmi:id="JSPAttribute_1"name="keepgenerated"value="true"/>,但是仍然不能够生成_***.java文件,请问还需要如何设置? 解决方案 解决方案二:toptoptop解决方案三:X:wsWorkSpacexxApp.metadata.pluginsco

jsp-为什么我用tomcat看不到网站,只能看一个一个的JSP文件?

问题描述 为什么我用tomcat看不到网站,只能看一个一个的JSP文件? 解决方案 web.xml 配置首页没? 解决方案二: 我是初学者啊,这个是基于JSP的商城网站,我只是把网站文件夹放在WEBAPP下,怎么配置WEB.XML啊? @JADP 解决方案三: 你的路径不对吧 你要看那个文件就要把文件的完整路径输入到浏览器上的, 比方说我在webapps目录下建一个MyProject文件夹,然后再MyProject文件夹中创建一个hllo.html. 那么我在浏览器上输入http://local