工作笔记5.JAVA图片验证码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作笔记5.JAVA图片验证码相关的知识,希望对你有一定的参考价值。

本文主要内容为:利用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图片验证码的主要内容,如果未能解决你的问题,请参考以下文章

Python简单的制作图片验证码

制作验证码时 图片无法刷新

制作图片验证码

C#-WebForm-★ 制作图片验证码 ★

图片验证码制作

C#-WebForm-★ 制作图片验证码 ★