jsp代码:
<form action="<%=basePath%>login" method="post" >
验证码:<input type="text" id="imageCode" name="imageCode" />
<img id="validateImage" src="<%=basePath%>imagecode-getImage" />
<input type="submit" value="提交"/>
</form>
生成验证码图片的servlet代码:
@WebServlet(urlPatterns="/imagecode-getImage")
public class GetCheckImp extends HttpServlet{
protected void doPost(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
throws javax.servlet.ServletException ,java.io.IOException {
resp.setHeader("Pragma", "No-cache");
resp.setHeader("Cache-Control", "no-cache");
resp.setDateHeader("Expires", 0);
// 在内存中创建图象
int width = 60, height = 20;
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
// 设定背景色
g.setColor(new Color(188, 217, 236));// getRandColor(200,250)
g.fillRect(0, 0, width, height);
// 设定字体
g.setFont(new Font("Times New Roman", Font.PLAIN, 18));
// 取随机产生的验证码(4位数字)
// 生成随机类
Random random = new Random();
String sRand = "";
for (int i = 0; i < 4; i++) {
String rand = String.valueOf(random.nextInt(10));
sRand += rand;
g.setColor(new Color(0, 102, 204));
g.drawString(rand, 13 * i + 6, 16);
}
// 将验证码存入SESSION
req.getSession().setAttribute("randnum", sRand);
// 图象生效
g.dispose();
// 输出图象到页面
OutputStream out = null;
try{
out =resp.getOutputStream();
ImageIO.write(image, "JPEG", resp.getOutputStream());
out.flush();
//out.close();
}catch(Exception e){
e.printStackTrace();
}
finally
{
if(out!=null)
{
try{
out.close();
}catch(Exception e)
{
}
}
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
}
前台提交后验证验证码是否正确:
@WebServlet(urlPatterns="/login")
public class Checknum extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String checknum=(String) req.getSession().getAttribute("randnum");
String imageCode= req.getParameter("imageCode");
if(checknum.equals(imageCode)){
resp.sendRedirect(req.getContextPath()+"/index.jsp");
}else{
resp.sendRedirect(req.getContextPath()+"/checknum.jsp");
}
}
}
分享到:
相关推荐
这个例子是一个验证码的实现,来源于http://blog.csdn.net/ricciozhang/article/details/43282481的博客文章,其中包含了名为“imagecode”的压缩包文件。 验证码的设计目的是增加机器识别的难度,而保持人类用户...
java生成验证码图片简单例子 Servlet
这个小例子聚焦于Java语言实现验证码的功能。通过阅读给出的博文链接,我们可以学习如何在Java环境下创建一个简单的验证码系统。 验证码的主要目的是防止机器人或恶意软件进行诸如批量注册、垃圾邮件发送等操作。它...
标题中的“图片验证码的例子”指的是一个用于网络安全的身份验证机制,它通常由一组随机生成的字母、数字或符号组成,以图像形式展示,用户需要输入看到的验证码内容来证明他们是人类而不是自动化程序。这种方式能...
这个简单的例子展示了验证码的基本原理和JSP实现步骤,对初学者来说是一个很好的学习起点。理解并实现这样的验证码系统有助于开发者更好地掌握Web开发中的会话管理、图像处理以及服务器端验证等核心概念。在实际项目...
在这个"php识别验证码完整例子"中,我们将探讨如何创建一个简单的PHP验证码系统。 首先,验证码的生成通常包括以下步骤: 1. **随机字符串生成**:PHP内置的`rand()`或`mt_rand()`函数可以生成随机数,结合字符集...
在这个例子中,我们讨论的是一个输出彩色验证码的实现,这可能是用编程语言实现的,比如Python、JavaScript或者其他支持图形处理的编程工具。 验证码的基本原理是生成一道人类可以轻易解答但计算机难以自动识别的...
这个"JSP生成数字验证码程序例子"将涵盖以上所有步骤,提供一个完整的实现,帮助开发者理解如何在实际项目中应用这一功能。通过学习这个示例,你可以更好地掌握JSP与Java图形处理的结合,以及如何在Web开发中实施...
这个压缩包文件"Chinese验证码简单例子"可能包含了一些示例代码或者资源,用于演示如何生成和验证中文验证码。 验证码的基本原理是通过生成一段随机的、难以自动识别的文字或数字,并要求用户输入所看到的内容。在...
总结来说,这个“带加减法的验证码”是一个提高网站安全性的好方法,通过引入简单的数学计算,增加了自动化程序破解的难度。开发这样的验证码需要掌握编程语言中的随机数生成、字符串处理以及图像处理等技术。同时,...
在这个“jsp 最简单获取动态验证码例子”中,我们将探讨如何在JSP中生成并显示一个简单的动态验证码。 验证码的主要目的是防止自动机器人或恶意脚本进行非法操作,例如防止垃圾邮件、注册虚假账号等。动态验证码则...
总的来说,这个示例提供了一个使用jsp和net.js实现验证码验证的简单方法,对于初学者来说是很好的实践项目。通过学习这个例子,你可以了解到如何在Web应用中实现基本的安全防护措施,以及如何利用现有的库来简化开发...
3. 滑动验证码:用户需要按照指定路径滑动一个部分图像到正确位置,这种方式结合了图像识别和用户交互,提高了安全性。 4. 行为验证码:分析用户输入习惯,如点击速度、轨迹等,来判断是否为人操作。 总之,中文...
本文将详细介绍`jCaptcha`在基于`Acegi`安全框架的应用中的使用,以及如何设置一个简单的`jCaptcha`验证码实例。 首先,我们来看`jcaptcha-1.0-all.jar`这个文件,它是`jCaptcha`的核心库,包含了所有必要的类和...
在这个“简单的用JSP产生的验证码例子”中,我们将探讨如何使用JavaServer Pages(JSP)来创建一个基本的图像验证码。 首先,JSP是Java的一种视图技术,它允许开发人员在HTML或XML文档中嵌入Java代码,从而动态生成...
阿里云短信验证码, java最简单的使用例子,直接调用。
本示例将介绍如何使用C#语言在Web环境中创建一个简单的验证码程序。 验证码通常包含几个随机生成的字符或数字,用户需要在输入框中正确输入这些字符才能完成验证。验证码的设计目标是让计算机难以自动识别,同时对...
以下是一个简单的验证码生成步骤: 1. **生成随机字符串**:通常验证码由4到6个随机字符组成,可以包含字母和数字。使用`java.util.Random`类和字符数组来生成这个随机字符串,并将其存储在一个会话(session)变量...
以下是一个简单的示例: ```csharp Bitmap bitmap = new Bitmap(120, 40); // 设置验证码图片的尺寸 Graphics graphics = Graphics.FromImage(bitmap); graphics.Clear(Color.White); // 填充背景色 Font font = ...