code类
package com.diablogs.commons;
import java.awt.Color;
import java.awt.Font;
import java.awt.image.BufferedImage;
import java.awt.Graphics;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class code extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
//生成数字和字母的验证码
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
BufferedImage img = new BufferedImage(68,22,BufferedImage.TYPE_INT_RGB);
Graphics g = img.getGraphics();
Random r = new Random();
Color c = new Color(200,150,255);
g.setColor(c);
// 填充整个图片的颜色
g.fillRect(0, 0, 68, 22);
//向图片输入数字或字母
StringBuffer sb = new StringBuffer();
char[] ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxzy".toCharArray();
int index,len = ch.length;
for(int i = 0;i < 4;i++){
index = r.nextInt(len);
g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255)));
g.setFont(new Font("宋体", Font.BOLD | Font.ITALIC, 16));
g.drawString("" + ch[index], (i * 15) + 6, 18);
sb.append(ch[index]);
}
request.getSession().setAttribute("piccode", sb.toString());
ImageIO.write(img, "jpg", response.getOutputStream());
}
}
WEB.XML配置文件
<servlet>
<servlet-name>code</servlet-name>
<servlet-class>com.diablogs.commons.code</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>code</servlet-name>
<url-pattern>/comment/code</url-pattern>
</servlet-mapping>
页面引用
<%@ page contentType="text/html; charset=utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<script type="text/javascript">
function ReloadCode()
{
var timenow = new Date().getTime();
document.getElementById("code").src='<%=request.getContextPath()%>/comment/code?d='+timenow;
}
</script>
<style>
img {border:none;}
</style>
<html>
<head>
<title>系统登录</title>
</head>
<body>
<a href="javascript:ReloadCode();" target="_self"><img alt="验证码" id="code" src="<%=request.getContextPath()%>/comment/code" ></a>
</body>
</html>
分享到:
相关推荐
本文档详细摘录了用servlet实现java中验证码的实现代码。
二、Servlet实现验证码 1. **生成随机字符串** 使用`java.util.Random`类和`java.security.SecureRandom`类可以生成随机字符串。例如,我们可以选择大小写字母、数字组成一个字符集,然后随机选取一定数量的字符...
java servlet实现验证码
本主题将深入探讨如何使用Servlet实现验证码功能,这对于防止自动化脚本或机器人滥用网站的注册过程至关重要。验证码(CAPTCHA)的主要目标是区分人类用户和机器,以确保数据提交是由真实的人进行的。 首先,我们...
在这里,我们将讨论如何通过Servlet生成随机字符串,并将其转化为图像输出到客户端,以此实现验证码功能。 1. **验证码逻辑设计** - **随机字符串生成**:首先,我们需要生成一个随机字符串,通常包含字母和数字,...
在Web开发中,JavaScript和Servlet是两种常用的编程语言,它们可以结合使用来创建一个有效的验证码系统。 首先,JavaScript通常在客户端运行,它可以生成随机的图形验证码并在网页上显示。这个过程涉及以下几个步骤...
动态生成验证码,并可以将用户输入的验证码和自动生成的进行比对,给出比对的结果
本示例通过使用Buffalo框架和Servlet来实现一个简单的图形验证码功能。下面将详细介绍这个实现过程中的关键知识点。 1. **Buffalo框架**:Buffalo是一个轻量级的Java服务框架,它提供了一种简单的方式来处理HTTP...
Java使用Servlet实现登录验证码涉及到的是Web开发中的安全性与用户体验部分。验证码是一种常用的安全机制,用于防止自动化的机器人或恶意程序进行非法操作,如批量注册、恶意登录等。在这个例子中,我们将探讨两种...
本教程将详细介绍如何使用Servlet技术来实现一个基本的图片验证码功能。Servlet是Java服务器端编程的核心技术之一,它可以接收和响应HTTP请求,非常适合构建动态Web应用程序。 首先,我们需要理解验证码的基本原理...
以上就是使用Java Servlet和JSP实现验证码的基本步骤。在实际应用中,还需要考虑一些优化措施,如防止重复请求同一验证码、设置验证码过期时间等。这个过程可以通过解压名为`verifyCodeDemo`的压缩包文件来查看具体...
总结,使用Servlet实现动态验证码涉及到图像处理、随机字符串生成、HTTP响应的构建和会话管理等多个技术点。理解这些原理并结合实际应用,可以帮助开发者创建出安全、有效的验证码系统,提高Web应用的安全性。
在Web开发中,验证码(CAPTCHA)是一种防止恶意自动化程序(如机器人)滥用服务的安全...通过研究源代码,你可以更深入地理解如何结合Servlet和JSP来实现验证码功能,并将其应用于自己的Web应用程序中,以增强安全性。
在网站开发中,验证码无疑是必不可缺的一项功能。这个是简易验证码的实现Demo。
基于Servlet实现的验证码验证是将验证码生成和验证过程集成到服务器端的一种方法,尤其适用于使用Java语言开发的SSH(Spring、Struts和Hibernate)项目。SSH框架提供了模型-视图-控制器(MVC)的架构,使得验证码...
总结起来,JSP、AJAX和Servlet的组合使得动态验证码的实现既高效又用户体验良好。这种技术的运用对于提高网站的安全性至关重要,因为它能有效防止自动化攻击,保护用户账户和系统的安全。在实际开发中,还可以根据...
总之,使用Servlet实现图形验证码涉及生成随机字符串、创建图像以及处理HTTP请求和验证。理解这些步骤对于构建一个安全的Web应用程序至关重要,因为它们能有效地防止自动化攻击,保护网站免受恶意活动的影响。在实际...
主要介绍了java使用servlet实现验证码,简单实用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下