`

jsp实现验证码两个例子

 
阅读更多

第一个:汉子型的验证码 从下面开始考呗 ---------------------------------------------》》》》

<%@ page lang ge="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%
String path = reqst.getContextPath();
String basePath = reqst.getScheme()+"://"+reqst.getServerName()+":"+reqst.getServerPort()+path+"/";
%>

<!DOCTYPE HTML P LIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'MyJsp.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>

<%!
//create by smallnest
//email: smallnest@gmail.com
//website:www.k ff.com


//生成随机颜色
Color getRandColor(Random random,int fc,int bc)
{
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);
}
%>
<%

// 设置图片的长宽
int width=176, height=30;
//设置备选汉字,剔除一些不雅的汉字
String base = "/的/一/了/是/我/不/在/人/们/有/来/他/这/上/着/个/地/到/大/里/说/就/去/子/得/也/和/那/要/下/看/天/时/过/出/小/么/起/你/都/把/好/还/多/没/为/又/可/家/学/只/以/主/会/样/年/想/生/同/老/中/十/从/自/面/前/头/道/它/后/然/走/很/像/见/两/用/她/国/动/进/成/回/什/边/作/对/开/而/己/些/现/山/民/候/经/发/工/向/事/命/给/长/水/几/义/三/声/于/高/手/知/理/眼/志/点/心/战/二/问/但/身/方/实/吃/做/叫/当/住/听/革/打/呢/真/全/才/四/已/所/敌/之/最/光/产/情/路/分/总/条/白/话/东/席/次/亲/如/被/花/口/放/儿/常/气/五/第/使/写/军/吧/文/运/再/果/怎/定/许/快/明/行/因/别/飞/外/树/物/活/部/门/无/往/船/望/新/带/队/先/力/完/却/站/代/员/机/更/九/您/每/风/级/跟/笑/啊/孩/万/少/直/意/夜/比/阶/连/车/重/便/斗/马/哪/化/太/指/变/社/似/士/者/干/石/满/日/决/百/原/拿/群/究/各/六/本/思/解/立/河/村/八/难/早/论/吗/根/共/让/相/研/今/其/书/坐/接/应/关/信/觉/步/反/处/记/将/千/找/争/领/或/师/结/块/跑/谁/草/越/字/加/脚/紧/爱/等/习/阵/怕/月/青/半/火/法/题/建/赶/位/唱/海/七/女/任/件/感/准/张/团/屋/离/色/脸/片/科/倒/睛/利/世/刚/且/由/送/切/星/导/晚/表/够/整/认/响/雪/流/未/场/该/并/底/深/刻/平/伟/忙/提/确/近/亮/轻/讲/农/古/黑/告/界/拉/名/呀/土/清/阳/照/办/史/改/历/转/画/造/嘴/此/治/北/必/服/雨/穿/内/识/验/传/业/菜/爬/睡/兴/形/量/咱/观/苦/体/众/通/冲/合/破/友/度/术/饭/公/旁/房/极/南/枪/读/沙/岁/线/野/坚/空/收/算/至/政/城/劳/落/钱/特/围/弟/胜/教/热/展/包/歌/类/渐/强/数/乡/呼/性/音/答/哥/际/旧/神/座/章/帮/啦/受/系/令/跳/非/何/牛/取/入/岸/敢/掉/忽/种/装/顶/急/林/停/息/句/区/衣/般/报/叶/压/慢/叔/背/细";
//备选汉字的长度
int length = base.length();


//创建内存图像
B?redImage image = new B?redImage(width, height, B?redImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();


//创建随机类的实例
Random random = new Random();


// 设定图像背景色(因为是做背景,所以偏淡)
g.setColor(getRandColor(random,200,250));
g.fillRect(0, 0, width, height);


//备选字体
String[] fontTypes = {"/宋/体","/新/宋/体","/黑/体","/楷/体","/隶/书"};
int fontTypesLength = fontTypes.length;


//在图片背景上增加噪点
g.setColor(getRandColor(random,160,200));
g.setFont(new Font("Times New Roman",Font.PLAIN,14));
for (int i=0;i<6;i++)
{
g.drawString("*********************************************",0,5*(i+2));
}


//取随机产生的认证码(6个汉字)


//保存生成的汉字字符串
String sRand="";
for (int i=0;i<6;i++)
{
int start = random.nextInt(length);
String rand=base.s string(start,start+1);
sRand+=rand;

//设置字体的颜色
g.setColor(getRandColor(random,10,150));
//设置字体
g.setFont(new Font(fontTypes[random.nextInt(fontTypesLength)],Font.BOLD,18 + random.nextInt(6)));
//将此汉字画到图片上
g.drawString(rand,24*i+ 10 + random.nextInt(8),24);
}


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


g.dispose();


//输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
out.clear();
out = pageContext.pushBody();
%>
</body>
</html>
--------------------结束

第二个 从下面开始拷贝:数字型的验证码

<%@ page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%@ page import="java.io.OutputStream" %>
<%!
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);
}
%>
<%
try{
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);
OutputStream os=response.getOutputStream();
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(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);
}
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valOf(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.setAttribute("rand",sRand);
g.dispose();

ImageIO.write(image, "JPEG",os);
os.flush();
os.close();
os=null;
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
}
catch(IllegalStateException e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}%>

分享到:
评论

相关推荐

    JSP 数字验证码 实现方法

    这段代码首先定义了一个颜色生成函数`getRandColor(int fc, int bc)`,它接受两个参数作为范围,并返回一个介于这两个颜色之间的随机颜色。这个函数用于生成背景色和数字的颜色。 接下来,创建一个`BufferedImage`...

    Jsp-图片验证码及刷新

    在这个例子中,创建了一个80像素宽、50像素高的RGB图像。 ```java BufferedImage image = new BufferedImage(80, 50, BufferedImage.TYPE_INT_RGB); ``` 2. **获取Graphics对象**:`BufferedImage`对象的`...

    java jsp 生成彩色验证码+验证功能代码,可直接运行,没有数据库

    这个压缩包中的两个例子分别展示了汉字和数字+字母形式的验证码,这使得验证码更加多样化,增加了破解的难度。对于汉字验证码,可能需要汉字字符集的支持,例如GBK或UTF-8。 总之,这个代码实例提供了完整的彩色...

    java彩色验证码例子

    它接受两个参数作为颜色范围,并返回一个介于两者之间的随机颜色。 5. **随机数生成**:`Random`类用于生成随机数,例如在生成验证码字符串和绘制干扰线时。这增加了破解验证码的难度。 6. **HTTP响应头**:为了...

    实现jsp验证码的简单小例子

    如果两个验证码相同,则验证通过否则验证失败。 jsp 验证码的实现 下面是 jsp 验证码的实现代码: ```jsp *,java.awt.image.*,java.util.*,javax.imageio.*" %&gt; !Color getRandColor(int fc,int bc){//给定范围...

    JSP验证码简单生成方法.pdf

    在JSP(JavaServer Pages)中生成验证码是一个常见的需求,这里我们将详细讲解如何实现一个简单的JSP验证码生成方法。 首先,验证码的基本原理是生成一段随机字符串,并将其显示在一个带有干扰元素的图片上,用户在...

    jsp 验证码

    首先,验证码的生成主要涉及两个部分:图像生成和随机数字或字母的生成。在JSP中,可以创建一个Servlet来处理这个任务,因为Servlet提供了服务器端处理请求的能力。 1. **随机数字或字母生成**: 通常我们会生成4...

    JSP了图形验证码-汉字

    在这个例子中,给出了一串较长的汉字字符串,这些都是可能用于生成验证码的汉字。 5. **生成验证码**:接下来的代码段会随机选取汉字,绘制到图片上,并添加随机的干扰线和点,以增加机器识别的难度。这通常涉及到...

    java 上传和验证码 源码

    以下是对这两个核心知识点的详细说明。 **1. Java 文件上传** 在Java中,文件上传通常涉及HTTP多部分请求(Multipart Request)。jspsmartupload.jar是一个第三方库,它简化了在Java Servlet环境中处理这种类型的...

    普通的验证码生成过程

    在这个例子中,`CheckFilter`可能用于检查请求的字符编码,确保它们与服务器的预期编码一致,以避免乱码问题。 总结来说,验证码生成是一个涉及图像处理、随机数生成和字符混淆的过程,而Filter则是Web应用中增强...

    jcaptcha生成验证码demo

    在JSP下,用jcaptcha生成彩色验证码的案例。...网上有很多例子,但有一点没说清楚,这个项目的jar包需要两个apache的项目包,一个是collections,还有一个是logging。 我做了一个小demo,放在 部署到tomcat上就OK了。

    jsp页面验证码完整实例

    这两个方法是用于在绘制验证码时增加视觉复杂性,使得机器更难识别验证码。 3. **Servlet生命周期方法**: `IdentityServlet`包含了标准的Servlet生命周期方法,如默认的构造函数和`destroy()`方法。`destroy()`...

    SSH框架登陆注册验证码验证

    自己写的一个小例子,基于SSH框架,功能包括登陆,注册,显示注册用户等。登陆以及注册时利用ajax实时监测...数据库采用oracleXE,就两个表,很简单的数据,大家根据代码中的持久化类自己建一下吧,这里就不附SQL了

    jsp中几个实用实例

    下面是一个简单的JSP验证码实现: ```jsp ; charset=UTF-8" %&gt; &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; String captchaCode = ""; // 生成随机验证码 // 这里可以使用Java的Random类...

    JSP Oracle 用户管理 示例

    当我们将这两个技术结合在一起时,通常是为了构建一个功能丰富的Web应用程序,例如用户管理系统。在这个“JSP Oracle 用户管理 示例”中,我们可以探讨以下几个关键知识点: 1. **JSP基础**:JSP是基于Java的服务器...

    留言板系统jsp

    这个系统的核心在于两个页面:`LOGIN.JSP`和`LOGIN_CONF.JSP`。 在`LOGIN.JSP`中,我们看到一个HTML表单,用于用户输入用户名和密码进行登录。这个页面使用JSP脚本片段来处理可能出现的错误信息。如果请求对象中有...

    jsp注册模块源代码

    在这个例子中,使用的是SQL Server数据库,并通过JDBC(Java Database Connectivity)来实现连接。 #### 数据库连接 ```java String DBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; String strConn =...

    jsp引用servlet生成的验证码代码演示

    在这个例子中,`check.jsp` 将用于显示生成的验证码,通常会包含一个表单,用户可以输入看到的验证码,然后提交表单进行验证。 3. **验证码生成**: - `checkCode.java` 文件包含了一个用于生成验证码的类。类中...

    Java实现图片验证码具体代码

    - 为了确保浏览器每次都请求新的验证码,而不是使用缓存的版本,可以通过两个方式实现:一是服务器端设置响应头,禁止图片缓存;二是前端通过 JavaScript 动态改变请求地址,如添加时间戳。 6. **HTTP请求参数**:...

    登录验证页面jsp.pdf

    在这个例子中,客户端验证通过JavaScript进行,例如检查字段是否为空、格式是否正确等。而服务器端验证,如在`login.jsp`中,用于验证用户身份,确保登录信息与数据库中的记录匹配。 6. JSP包含指令(): `...

Global site tag (gtag.js) - Google Analytics