image.java用于产生彩色验证码,其代码如下:

package test;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.imageio.ImageIO;public class Image {//验证码图片中可以出现的字符集private char mapTable[]={'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','0','1','2','3','4','5','6','7','8','9'};//生成彩色的验证码图片。width表示图片宽度;height表示图片高度。public String getCertPic(int width, int height, OutputStream os){if(width<=0) width=60;if(height<=0) height=20;BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);//获取图形上下文Graphics g=image.getGraphics();//设置背景g.setColor(new Color(0XDCDCDC));g.fillRect(0,0,width,height);//画边框g.setColor(Color.black);g.drawRect(0,0,width-1,height-1);//随机产生认证码String strEnsure="";//产生4位认证码for(int i=0;i<4;i++){strEnsure+=mapTable[(int)(mapTable.length*Math.random())];}//将认证码显示到图像中g.setColor(Color.black);g.setFont(new Font("Atlantic Inine",Font.PLAIN,18));String str=strEnsure.substring(0,1);g.drawString(str,8,17);str=strEnsure.substring(1,2);g.drawString(str,20,15);str=strEnsure.substring(2,3);g.drawString(str, 35, 18);str=strEnsure.substring(3,4);g.drawString(str,45,15);//随机产生10个干扰点Random rand=new Random();for(int i=0;i<10;i++){int x=rand.nextInt(width);int y=rand.nextInt(height);g.drawOval(x, y, 1, 1);}//释放图形上下文g.dispose();try{//输出图像到页面ImageIO.write(image, "JPEG", os);}catch(IOException e){return "";}return strEnsure;   }
}

index.jsp展示登录主界面,其代码如下:

<html>
<body>
<form action="check.jsp" method="post">
用户名:<input type="text" name="username"/> <br>
密  码<input type="password" name="password"> <br>
验证码:<input type="text" name="certCode"/>
<%-- 调用image.jsp显示验证码图片--%>
<img src="data:image.jsp"> <br>
<input type="submit" value="确定"/>
</form>
</body>
</html>

image.jsp负责调用JavaBean显示验证码图片,以及将得到的string形式验证码放入session中。其代码如下:

<jsp:useBean id="image" scope="session" class="test.Image"/>
<%
//得到生成的验证码,并将验证码以图片方式输出
String str=image.getCertPic(0,0,response.getOutputStream());
//将认证码存入session
session.setAttribute("certCode",str);%>

check,jsp负责比对用户输入的验证码和图片显示的验证码是否一致,其代码如下:

<%
//得到用户输入的验证码
String certCode=request.getParameter("certCode");
//比对用户输入的验证码和生成的验证码是否相同
if(certCode.equals((String)session.getAttribute("certCode")))out.print("验证码输入正确");elseout.print("验证码输入错误");%>

运行index.jsp进入登陆界面,截图如下:

1.若输入正确的验证码,截图如下:

点击”确定“后跳转到check.jsp页面,显示输入验证码正确:

2.若输入错误的验证码,截图如下:

点击”确定“后跳转到check.jsp页面,显示输入验证码错误:

JSP实例-彩色验证码相关推荐

  1. 用开源组件jcaptcha做jsp彩色验证码

    用开源组件jcaptcha做jsp彩色验证码 key words: jsp验证码 jcaptcha 原文参考 这里 安装 Add jcaptcha-all.jar (provided in bin-d ...

  2. 英文.数字和中文混合的彩色验证码【JSP】

    一.编写生成英文,数字和中文混合的彩色验证码的Servlet实现类 (1)创建名称为PictureCheckCode.java的Servlet. public class PictureCheckCo ...

  3. 英文,数字和中文混合的彩色验证码实现

    功能描述:英文,数字和中文混合的彩色验证码是一种比较安全的验证码,虽然这样的验证码会给用户输入带来不便,但对于保障用户账号的安全还是值得的.本实例介绍实现英文,数字和中文混合验证码的彩色验证码的方法, ...

  4. 用Java语言编写的随机彩色验证码

    在制作网页过程中,免不了在登录注册页面增加一个验证码来延长数据提交时间,以免大量用户过快连接数据库读取,写入数据导致服务器崩溃.以下是用Java语言编写的彩色验证码,可用于jsp.html文件. 源代 ...

  5. JSP+servlet生成验证码并验证

    生成验证码的基本过程是: <%@ page language="java" import="java.util.*" pageEncoding=" ...

  6. 自定义标签的使用jsp实例_JSP自定义标签示例教程

    自定义标签的使用jsp实例 Today we will look into JSP custom tags. Earlier we learned about JSP Action Elements, ...

  7. 网络视频直播系统,制作彩色验证码

    网络视频直播系统,实现制作彩色验证码相关代码 from random import choice, randint, randrange import string from PIL import I ...

  8. java 登录验证码_java jsp实现登录验证码

    java jsp实现登录验证码 工作中使用的java jsp实现的登录验证码.代码记录如下: 1.登录主页面(login.jsp) pageEncoding="UTF-8"%> ...

  9. JSP页面中验证码的调用方法

    步骤: 1.首先是要生成验证码 2.对验证码类进行调用:主要 实现的是  将验证码图片 输出到response.getOutputStream()这个输出流中 调用时,可以在页面调用,也可以在serv ...

最新文章

  1. 直播 | 旷视研究院最新理论成果:批归一化和权重衰减的球面优化机制
  2. 为VMware虚拟机中的Linux系统设置固定IP的方法
  3. 在Vaadin和JSF之间选择
  4. PHP函数库03:PHP生成曲线图函数
  5. J 位操作练习 (Java)
  6. Javaweb中EL 表达式和JSTL 的使用
  7. 苹果系统连接服务器打印机,Mac系统怎么连接打印机
  8. 开心农场简易外挂的实现
  9. 爬虫同步验证码登录武大教务系统
  10. Python 爬取豆瓣电影Top250
  11. LeetCode.No5——最长回文子串
  12. 2019 | 开启新的堕落生活
  13. 3975: 人工智能(障)?
  14. 机器学习所需要的高数知识
  15. OPPOa5m手机Android,OPPO A5怎么样?OPPO A5手机体验评测
  16. 【H5】H5与APP对接跳转
  17. Coding and Paper Letter(六十)
  18. 畅想未来计算机英语作文带翻译,my future英语作文带翻译
  19. 亚信科技java面试题及答案.doc
  20. Unknown custom element: <a-carousel> - did you register the component correctly?For recursive.....

热门文章

  1. python程序代码_python基础二
  2. php连接mysql开发环境_PHP开发环境搭建及常用的数据库操作
  3. 接口-----java
  4. java连接mysql通用方法_jdbc操作数据库通用方法
  5. Java this关键字详解
  6. cmd中Redis的启动
  7. iOS开发cocoaPod的使用
  8. 三星s2 硬刷Android 8,三星T710(GALAXY Tab S2 8.0)一键救砖教程,轻松刷回官方系统...
  9. mysql 多项式_mysql主从复制原理及实现
  10. 应用在核电站DCS系统的代码自动生成工具ModelCoder