首先声明,这不是原创,而是从现有系统扒下来的一段验证码程序,至于出处已经无从考证,完全是想借助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页面中刷新验证码的方法:一是通过直接点击验证码图像来刷新,二是通过点击...
1. **生成随机码**:在服务器端,我们需要创建一个随机字符串,这个字符串将成为验证码的内容。可以使用Java的`Random`类或者`SecureRandom`类来生成这些随机字符,通常包含字母和数字。 2. **绘制验证码图片**:...
对于这个模块,开发人员可能还提供了一个详细的说明文档,里面包含了如何集成验证码模块到现有项目中,设置参数,以及处理前端与后端交互的示例代码。文档可能还会涵盖如何自定义验证码的样式,比如字体、颜色、大小...
JSP是Java平台上的一个标准,用于构建动态Web应用程序。它允许开发者在HTML页面中嵌入Java代码,实现了视图和逻辑的分离。而“java”则表明这些实例基于Java语言,Java是JSP的基础,提供了服务器端的编程环境和类库...
JSP+servlet+javabean学习 里面有PDF文件对该章节的详细讲解,培训老师才讲的到的,非常详细......资源内容如下: JavaWeb02-request与response.rar JavaWeb03-会话跟踪cookie与session.rar JavaWeb04-内置对象与...
【标题】:“很好的jsp做的留言板,不看会后悔...无论是初学者还是有经验的开发者,都可以通过深入研究这个项目来提升自己的技能,了解如何构建一个完整的Web应用,并且学习到如何在实际环境中运用JSP和其他相关技术。
描述中的内容与标题相同,"基于JSP的学科竞赛管理系统源码数据库.zip",这表明提供的资源是一个ZIP压缩文件,里面包含的是完整的源代码和可能的数据库设计,用于实现一个学科竞赛的管理系统。通常这样的系统会涉及...
1. 创建 Web 项目 myWebsite,並将所有文件放在一个包里面。 2. 在配置文件 web.xml 中分别对它们进行配置。 3. 编写 Servlet 代码,包括 IPCheck Servlet,用于客户端 IP 地址检测。 4. 编写 JSP 代码,包括 index....
JSP+servlet+javabean学习 里面有PDF文件对该章节的详细讲解,培训老师才讲的到的,非常详细......资源内容如下: JavaWeb02-request与response.rar JavaWeb03-会话跟踪cookie与session.rar JavaWeb04-内置对象与...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
Struts是Apache软件基金会旗下Jakarta项目的一个子项目,它是一个开源的MVC(Model-View-Controller)框架,主要用于构建Java Web应用程序。本话题将深入探讨“簡單的struts登陸”这一主题,帮助你理解和实现一个...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...