`
changkunyang
  • 浏览: 30877 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个可以在JSP里面应用的验证码

    博客分类:
  • JAVA
阅读更多
  首先声明,这不是原创,而是从现有系统扒下来的一段验证码程序,至于出处已经无从考证,完全是想借助javaeye这个平台做一次搬运和备份,如果正好下面的代码正好能为你所使用,请对那位贡献了此段代码的人致敬。

生成验证码的JSP
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@ page import="java.awt.*,java.awt.image.*,java.util.*,com.sun.image.codec.jpeg.*"%>
<%
	request.setCharacterEncoding("UTF-8");
	response.setCharacterEncoding("UTF-8");
	response.setContentType("text/html; charset=UTF-8");

	String chose = "123456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";

	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 = 65, height = 20;
	BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
	Graphics g = image.getGraphics();
	//以下填充背景颜色
	g.setColor(Color.LIGHT_GRAY);
	g.fillRect(0, 0, width, height);
	//设置字体颜色
	g.setColor(Color.RED);
	Font font = new Font("Arial", Font.PLAIN, 17);
	g.setFont(font);
	g.drawString(random, 5, 15);
	Random r = new Random();
	for (int i = 0; i < 20; i++) {
		int x = r.nextInt(width);
		int y = r.nextInt(height);
		g.drawOval(x, y, 0, 0);
	}
	g.dispose();
	ServletOutputStream outStream = response.getOutputStream();
	JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outStream);
	encoder.encode(image);
	outStream.close();
%>



在需要使用验证码的地方引入
<img src="random.jsp" id="random">


然后你可以判断用户输入的验证码,是否和保存在session.setAttribute("random", String.valueOf(ran));里面的验证码一致。
分享到:
评论

相关推荐

    如何在jsp里面刷新验证码

    在探讨“如何在JSP里刷新验证码”这一主题时,我们不仅关注于代码实现的细节,更要理解其背后的原理与应用场景。本文将深入解析两种在JSP页面中刷新验证码的方法:一是通过直接点击验证码图像来刷新,二是通过点击...

    jsp 处理验证码的步骤

    1. **生成随机码**:在服务器端,我们需要创建一个随机字符串,这个字符串将成为验证码的内容。可以使用Java的`Random`类或者`SecureRandom`类来生成这些随机字符,通常包含字母和数字。 2. **绘制验证码图片**:...

    图文验证码模块(含说明文档)

    对于这个模块,开发人员可能还提供了一个详细的说明文档,里面包含了如何集成验证码模块到现有项目中,设置参数,以及处理前端与后端交互的示例代码。文档可能还会涵盖如何自定义验证码的样式,比如字体、颜色、大小...

    jsp30个项目实例,适合初学者

    JSP是Java平台上的一个标准,用于构建动态Web应用程序。它允许开发者在HTML页面中嵌入Java代码,实现了视图和逻辑的分离。而“java”则表明这些实例基于Java语言,Java是JSP的基础,提供了服务器端的编程环境和类库...

    JavaWeb11-图片验证码.rar

    JSP+servlet+javabean学习 里面有PDF文件对该章节的详细讲解,培训老师才讲的到的,非常详细......资源内容如下: JavaWeb02-request与response.rar JavaWeb03-会话跟踪cookie与session.rar JavaWeb04-内置对象与...

    很好的jsp做的留言板,不看会后悔哦

    【标题】:“很好的jsp做的留言板,不看会后悔...无论是初学者还是有经验的开发者,都可以通过深入研究这个项目来提升自己的技能,了解如何构建一个完整的Web应用,并且学习到如何在实际环境中运用JSP和其他相关技术。

    基于JSP的学科竞赛管理系统源码数据库.zip

    描述中的内容与标题相同,"基于JSP的学科竞赛管理系统源码数据库.zip",这表明提供的资源是一个ZIP压缩文件,里面包含的是完整的源代码和可能的数据库设计,用于实现一个学科竞赛的管理系统。通常这样的系统会涉及...

    Java EE 实验二Servlet程序设计.doc

    1. 创建 Web 项目 myWebsite,並将所有文件放在一个包里面。 2. 在配置文件 web.xml 中分别对它们进行配置。 3. 编写 Servlet 代码,包括 IPCheck Servlet,用于客户端 IP 地址检测。 4. 编写 JSP 代码,包括 index....

    JavaWeb10-分页应用.rar

    JSP+servlet+javabean学习 里面有PDF文件对该章节的详细讲解,培训老师才讲的到的,非常详细......资源内容如下: JavaWeb02-request与response.rar JavaWeb03-会话跟踪cookie与session.rar JavaWeb04-内置对象与...

    java开源包4

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包11

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包1

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    簡單的struts登陸

    Struts是Apache软件基金会旗下Jakarta项目的一个子项目,它是一个开源的MVC(Model-View-Controller)框架,主要用于构建Java Web应用程序。本话题将深入探讨“簡單的struts登陸”这一主题,帮助你理解和实现一个...

    java开源包2

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包3

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包6

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包5

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包10

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包8

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包7

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

Global site tag (gtag.js) - Google Analytics