本文主要内容为:利用JAVA图片制作验证码

设计思路:

1、拷贝AuthImageServlet.class图片验证码

2、配置web.xml

3、JSP中,调用封装好的AuthImageServlet,实现载入验证码的功能。

4、取出存放在Session中的验证码。在Action中推断验证码的正确性

相比較上一篇博客工作笔记5.JAVA文本框验证码而言,图片验证码添加了安全性。

在Action中,通过取出Session中的验证码与输入的验证码是否匹配进行推断。

步骤:

1、拷贝AuthImageServlet.class图片验证码

下载地址:  http://pan.baidu.com/s/1bnF7dcr

2、配置web.xml

  	<servlet>
<servlet-name>AuthImageServlet</servlet-name>
<servlet-class>cn.bjjczb.jyzgcx.util.AuthImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AuthImageServlet</servlet-name>
<url-pattern>/servlet/AuthImageServlet</url-pattern>
</servlet-mapping>

3、JSP中,调用封装好的AuthImageServlet。实现载入验证码的功能

	<script type="text/javascript">
function changeCode() {  
var imgNode = document.getElementById("vimg");                  
//又一次载入验证码,达到刷新的目的  
imgNode.src = "${pageContext.request.contextPath}/servlet/AuthImageServlet?t=" + Math.random();  // 防止浏览器缓存的问题     
} </script>
	验证码:
<input type="text" id="creditCodes" name="creditCodes" class="dz" style="width: 110px;"/>
<img id="vimg" src="${pageContext.request.contextPath}/servlet/AuthImageServlet" class="code" style="vertical-align: middle;" width="83" height="21" />
<a href="#" onclick="changeCode();">刷新</a>

4、取出存放在Session中的验证码,在Action中推断验证码的正确性

	/** 登录 */
public String login() throws Exception {
// 获取存放在Session中的验证码
String creditCode = (String) session.getAttribute("rand");
//比較深输入的"验证码creditCodes"与creditCode是否匹配(忽略大写和小写)
if (creditCodes.equalsIgnoreCase(creditCode)) {
//验证码输入正确 } else {
//验证码输入错误
}
}
        //用于获取页面中用户输入的验证码
private String creditCodes;
public String getCreditCodes() {
return creditCodes;
}
public void setCreditCodes(String creditCodes) {
this.creditCodes = creditCodes;
}


工作笔记5.JAVA图片验证码的更多相关文章

  1. Java 图片验证码工具

    package com.microwisdom.utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics ...

  2. 问题记录-java图片验证码显示乱码

    部署机器 操作系统:centos 7 java版本: java version "1.7.0_80" 问题症状 将一个java web的程序部署到了两台配置相同的服务器上之后(服务 ...

  3. JAVA图片验证码

    package hh.com.util; import java.io.IOException; import javax.servlet.ServletException; import javax ...

  4. 自己封装的一个java图片验证码

    验证码生成器: package com.lz.Tools; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; ...

  5. JAVA图片验证码(转自“云在青山”)

    首先创建一个生成图片的类,设置一些请求参数,生成随机的字符串,然后字符串传给生成验证码图片的类进行处理,完成后输出到页面 1.创建验证码生成类 package hh.com.util; import ...

  6. 一篇Java图片验证码生成的代码

    package projectUtil; /** * @author tian * @date 2019/4/1015:58 */ import javax.imageio.ImageIO; impo ...

  7. Java图片验证码生成工具

    直接把以下代码拷贝使用: import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;impo ...

  8. ASP.NET工作笔记之一:图片上传预览及无刷新上传

    转自:http://www.cnblogs.com/sibiyellow/archive/2012/04/27/jqueryformjs.html 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...

  9. Java图片验证码乱码问题

    有时部署到linux服务器上的web项目的图形验证码可能会出现乱码问题 这不是编码格式出错了,而是可能服务器上没有图形验证码中限定的那种字体 比如生成图形验证码的代码: Font font = new ...

随机推荐

  1. js 如何判断浏览器是否禁用cookie

    语法:navigator.cookieEnabled: 如果浏览器启用了cookie,该属性值为true.如果禁用了cookie,则值为false. navigator: JavaScript中的一个 ...

  2. 5kcrm增加权限管理中的模块(签到统计)

    1 首先在model表增加模块名称 2 在controll里增加方法 3 在授权的html增加表单

  3. Eclipse删除多余工作空间

    选择perferences-->General -->Startup and Shutdown-->workspace-->选择多余的工作空间 -> remove -&g ...

  4. bzoj-1492 货币兑换Cash (1)——平衡树维护凸包

    题意: 有n天和m的初始金钱,用来购买AB两种纪念券: n天里每天都有AB的价格.每天能够进行这种操作. 1.卖出手中x%的纪念券(AB分别都卖出x%). 2.用x的金钱买入纪念券.买入AB券的比例在 ...

  5. Android动态载入JAR包的实现方法

    有时候我们须要使用动态更新技术,简单来说就是:当我们把开发jar包发送给用户后.假设后期升级了部分代码.这时让用户的jar包自己主动更新,而不是用户主动手动地去更新的技术就是动态更新.这个须要使用的技 ...

  6. [Android] Android开发优化之——从代码角度进行优化

    通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的.一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构.重构的好处有很多,其中一点,就 ...

  7. php利用msqli访问数据库并实现分页,

    <?php require_once 'login.php'; $num_rec_per_page=2; // 每页显示数量 //mysql_connect('localhost','jim', ...

  8. sc.textFile("file:///home/spark/data.txt") Input path does not exist解决方法——submit 加参数 --master local 即可解决

    use this val data = sc.textFile("/home/spark/data.txt") this should work and set master as ...

  9. 在vmware下为oracle RAC 创建共享存储的总结

    首先,介绍下用命令行vm-diskmanager形式创建磁盘文件的方法(其实,图形界面添加新磁盘就是调用此命令).       很多网上文章提及plainmaker.exe去创建共享磁盘,是以前的版本 ...

  10. Kettle学习系列之Kettle能做什么?(三)

    不多说,直接上干货! PDI(Kettle) 都能做什么? 可以说凡是有数据整合.转换.迁移的场景都可以使用PDI,他代替了完成数据转换任务的手工编码,降低了开发难度. 同时,我们可以在自己实际业务里 ...