`
dawuafang
  • 浏览: 1192005 次
文章分类
社区版块
存档分类
最新评论

一段利用session生成随即验证码得代码分享

 
阅读更多
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics;
importjava.awt.image.BufferedImage;
importjava.io.ByteArrayOutputStream;
importjava.io.IOException;

importjavax.imageio.ImageIO;
importjavax.servlet.ServletException;
importjavax.servlet.ServletOutputStream;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;


publicclassCheckextendsHttpServlet...{

privatestaticintWIDTH=60;
privatestaticintHEIGHT=20;

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException...{
HttpSessionsession
=request.getSession();
response.setContentType(
"image/jpeg");
ServletOutputStreamsos
=response.getOutputStream();

//设置浏览器不要缓存图片
response.setHeader("Pragma","No-cache");
response.setHeader(
"Cache-Control","no-cache");
response.setDateHeader(
"Expires",0);

//创建内存图像并获得图像上下文
BufferedImageimage=newBufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);
Graphicsg
=image.getGraphics();

//产生随即得验证码
char[]rands=this.generateCheckCode();
//产生图像
this.drawBackground(g);
this.drawRands(g,rands);

//结束图像得绘制过程,完成图像
g.dispose();

//将图像输出到客户端
ByteArrayOutputStreambos=newByteArrayOutputStream();
ImageIO.write(image,
"JPEG",bos);
byte[]buf=bos.toByteArray();
response.setContentLength(buf.length);
bos.write(buf);
bos.close();

//将验证码放入到session中
session.setAttribute("check_code",newString(rands));


}

privatechar[]generateCheckCode()...{
//定义验证码得字符表
Stringchars="0123456789abcdefghijklmnopqrstuvwxyz";
char[]rands=newchar[4];
for(inti=0;i<4;i++)...{
intrand=(int)(Math.random()*36);
rands[i]
=chars.charAt(i);
}

returnrands;
}



privatevoiddrawRands(Graphicsg,char[]rands)...{
g.setColor(Color.BLACK);
g.setFont(
newFont(null,Font.ITALIC|Font.BOLD,18));
g.drawString(
""+rands[0],1,17);
g.drawString(
""+rands[0],16,15);
g.drawString(
""+rands[0],31,18);
g.drawString(
""+rands[0],46,16);


}


privatevoiddrawBackground(Graphicsg)...{
//画背景
g.setColor(newColor(0xDCDCDC));
g.fillRect(
0,0,WIDTH,HEIGHT);
for(inti=0;i<120;i++)...{
intx=(int)(Math.random()*WIDTH);
inty=(int)(Math.random()*HEIGHT);
intred=(int)(Math.random()*255);
intgreen=(int)(Math.random()*255);
intblue=(int)(Math.random()*255);
g.setColor(
newColor(red,green,blue));
g.drawOval(x,y,
1,0);
}

}



}

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    验证码生成代码

    下面是一段简单的JSP验证码生成代码示例: ```jsp *,java.util.Random" %&gt; ;charset=UTF-8" %&gt; String verifyCode = ""; Random random = new Random(); char[] chars = ...

    生成验证码图片的jsp代码

    在Web开发中,使用JSP(JavaServer Pages)来生成验证码图片是一种常见的方法。下面我们将详细讨论如何在JSP中实现验证码的生成。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机的字母和数字,有时...

    生成验证码 jsp 图片验证码

    在实际开发中,我们可以使用现成的库,如Captcha4j或JCaptcha,它们提供了许多预设的验证码样式和配置选项,使得生成验证码变得更加方便。 总的来说,生成JSP图片验证码涉及了Java图像处理、随机数生成、Session...

    登陆验证+servlet动态生成图片验证码

    在Servlet中生成图片验证码,首先需要创建一个Servlet类,该类将负责生成随机字符串并将其转化为图像。以下是一些关键步骤: 1. **生成随机字符串**:使用`java.util.Random`和`char[]`数组来创建一个指定长度的...

    验证码的session问题

    在Web应用中,当用户请求验证码时,服务器会生成验证码并将其存储在Session中,同时将验证码的ID(通常是一个唯一的Session ID)发送给客户端,通常以Cookie的形式。客户端在填写验证码后,将验证码ID和用户输入的...

    Servlet生成动态验证码

    为了防止重复,可以将生成的验证码存入session中,同时设置一个过期时间。 4. 图像处理: Java的`java.awt`和`javax.imageio`包提供了丰富的图像处理功能。可以使用`Graphics`对象在图像上绘制文本、线条、形状等...

    asp验证码代码

    ASP.NET验证码技术是一种用于验证用户身份的安全机制,它在网页上显示一段随机生成的图像,要求用户输入看到的字符,以此防止自动化的机器人程序或恶意脚本进行非法操作。在这个"asp验证码代码"中,我们可以深入探讨...

    登录界面的验证码代码

    - **验证码**:这里使用了`&lt;img&gt;`标签来展示验证码图片,其`src`属性指向了一个生成验证码图片的JSP页面(`makeCertPic.jsp`)。点击该图片时会触发`onclick`事件,调用`reloadcode()`函数来刷新验证码。 ##### 2. ...

    asp.net生成随机验证码控件

    1. **生成随机字符串**:首先,我们需要生成一段随机的字符串作为验证码的内容。这可以通过`Random`类配合`char`数组和ASCII值范围来实现。例如,我们可能选择9到12之间的数字作为验证码长度,然后从ASCII表中的大小...

    java web笔记之servlet生成验证码

    2. 验证码的生命周期要管理好,确保一段时间后会话过期,避免被恶意用户利用。 3. 考虑使用更安全的验证码技术,如Google的reCAPTCHA,以提高安全性。 通过上述步骤,我们可以使用Servlet在Java Web应用中实现一个...

    asp.net(C#) 生成随机验证码的代码

    这个类将处理生成验证码和创建验证码图片的逻辑。 1. **创建验证码字符串**: 在`CreateCode`方法中,我们定义了一个包含数字和字母的字符串`so`,然后将其分割成字符数组`strArr`。接着,我们使用`Random`类来...

    php生成验证码代码

    以上就是这段PHP生成验证码代码的主要实现逻辑和技术要点。通过这些步骤,我们可以实现一个简单的图形验证码系统,用于提高网站的安全性。需要注意的是,在实际应用中还应考虑更多的安全措施和用户体验优化,例如...

    jsp中实现验证码的代码和示例

    这段代码首先生成了一个4位随机数字的验证码,然后创建了一个图片并绘制了验证码以及干扰线,最后将验证码保存到session,并将生成的图像以JPEG格式输出到浏览器。 `Random.txt`可能是一个简单的文本文件,用于记录...

    生成jsp验证码,很好用

    1. **验证码的基本原理**:验证码通过显示一段随机生成的文字或数字图像,要求用户输入看到的内容来完成验证。这种技术可以防止自动化程序自动识别并填充表单,保护网站免受垃圾信息的侵扰。 2. **JSP生成验证码**...

    net自动生成登录验证码(图片)

    在`Page_Load`方法中,我们生成验证码并将其存储在`Session`中,然后创建包含验证码的图像。 ```csharp protected void Page_Load(object sender, EventArgs e) { string checkCode = CreateCode(4); Session[...

    5种JSP验证码的源代码

    首先,验证码的基本原理是生成一段随机的、难以通过计算机程序自动识别的文字或图像,用户需要正确输入才能完成验证。在JSP中实现验证码,通常涉及到以下几个关键步骤: 1. **生成随机字符串**:这是验证码的核心,...

    随机生成验证码

    此外,考虑到性能和用户体验,验证码的生命周期应适当设置,比如在一段时间无操作后自动过期。 5. **可用性和可访问性**:尽管验证码的主要目的是阻止自动化程序,但也要确保对人类用户友好。成语验证码可能会对非...

    java验证码生成类

    首先,验证码的基本原理是生成一段随机的、难以由机器识别的文字或数字序列,然后要求用户在限定时间内输入这个序列以证明他们不是机器人。验证码的复杂度可以根据安全需求进行调整,例如,可以设置为纯数字、字母...

    java代码中图形验证码的源代码

    // 生成验证码字符 String sRand = ""; char[] codeSequence = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; for (int ...

    验证码 源代码验证码 源代码

    根据给定文件的信息,我们可以分析出这是一段用于生成网页上的验证码图像的Java源代码。接下来,我们将详细解析这段代码中的各个部分,并提取出相关的知识点。 ### 1. 设置响应类型与导入必要的包 首先,代码通过`...

Global site tag (gtag.js) - Google Analytics