Ajax+Struts2实现验证码验证功能(图文教程)

这篇文章主要介绍了ajax+struts2实现验证码验证功能实例代码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

众所周知,验证码在我们的生活中都是非常常见的,很多公司都在各种折腾各种各样的验证码,这里简要的用一个小案例来实现验证码的功能(ps:其实我挺讨厌验证码这个东西的)。

今天分享的是通过ajax来动态的验证验证码输入是否正确。我们这里采用的是ajax+struts2来做的这个验证。 我们新建一个web工程。然后需要导入struts的相应包。之后我们需要写一个类来生成验证码。

这里命名为01_image.jsp,这类的主要功能就是生成验证码,里面是各种画线条,随机数字等,我这里设置的是5个数字的验证,如果你想要改成其他的也可以,大致思路就是在生成数字的那个循环那里加上字母就可以了。


登录后复制

接下来把输入验证码的html页面写好,我这里是些在了一个jsp文件中的。命名为checkcode.jsp

验证码:Ajax+Struts2实现验证码验证功能(图文教程) 

登录后复制

然后给这个文件添加javascript代码,这里使用的当然就是一个ajax啦,对于ajax的编码步骤之前已经写的很详细了,所以我们这里就直接使用了。 对于ajax.js写好后放到js目录下面,然后再找个checkcode.jsp中引入中国js文件 ajax.js的内容:

//创建AJAX异步对象,即XMLHttpRequestfunction createAJAX(){var ajax = null;try{ajax = new ActiveXObject("microsoft.xmlhttp");}catch(e1){try{ajax = new XMLHttpRequest();}catch(e2){alert("你的浏览器不支持ajax,请更换浏览器");}}return ajax;}

登录后复制

然后就是chenkcode中的js内容了

//去掉两边的空格function trim(str){str=str.replace(/^s*/,"");//从左侧开始,把空格去掉str=str.replace(/s*$/,""); //从右侧开始,把K歌都去掉return str;}document.getElementById("checkcodeID").onkeyup=function(){var checkcode=this.value;checkcode=trim(checkcode);if(checkcode.length==5){var ajax=createAJAX();var method="POST";var url = "${pageContext.request.contextPath}/checkRequest?time="+new Date().getTime();ajax.open(method,url);//设置ajax请求头为post,它会将请求的汉字自动进行utf-8的编码ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");var content="checkcode="+checkcode;ajax.send(content);ajax.onreadystatechange=function(){if(ajax.readyState==4){if(ajax.status==200){var tip=ajax.responseText;var img=document.createElement("img");img.src=tip;img.style.width="14px";img.style.height="14px";var td=document.getElementById("resID");td.innerHTML="";td.appendChild(img);}} } }else{var td=document.getElementById("resID");td.innerHTML="";}}

登录后复制

然后开始写服务器端的代码,进行校验的话就需要这样的一个类了:

package cn.tf.checkcode;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;//验证码检查public class CheckcodeAction extends ActionSupport{private String checkcode;public void setCheckcode(String checkcode) {this.checkcode = checkcode;}/*** 验证* @throws IOException */public String check() throws IOException {//图片路径String tip="images/a.jpg";//从服务器获取session中的验证码String checkcodeServer=(String) ActionContext.getContext().getSession().get("CHECKNUM");if(checkcode.equals(checkcodeServer)){tip="images/b.jpg";}//以IO流的方式将tip变量输出到ajax异步对象中HttpServletResponse response=ServletActionContext.getResponse();response.setContentType("text/html;charset=UTF-8");PrintWriter pw=response.getWriter();pw.write(tip);pw.flush();pw.close();return null;}}

登录后复制

最后在struts.xml文件中写入相应的方法。

 

登录后复制

运行结果如下:验证成功则返回绿色的小勾,错误则红色的叉。

Ajax+Struts2实现验证码验证功能(图文教程)

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

Ajax点击不断加载数据列表(图文教程)

浅谈ajax请求技术

非常实用的ajax用户注册模块

以上就是Ajax+Struts2实现验证码验证功能(图文教程)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2758583.html

(0)
上一篇 2025年3月8日 08:14:27
下一篇 2025年2月24日 22:17:51

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 基于Ajax技术实现文件上传带进度条

    这篇文章主要介绍了基于ajax技术实现文件上传带进度条的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 1.概述 在实际的Web应该开发或网站开发过程中,经常需要实现文件上传的功能。在文件上传过程中,经常需要用户进行长时间的等待…

    编程技术 2025年3月8日
    200
  • 深入浅析Nginx实现AJAX跨域请求问题

    ajax从一个域请求另一个域会有跨域的问题。那么如何在nginx上实现ajax跨域请求呢?此问题难住很多朋友,下面我给大家带来了nginx实现ajax跨域请求问题的相关知识,感兴趣的朋友一起学习吧 AJAX从一个域请求另一个域会有跨域的问题…

    编程技术 2025年3月8日
    200
  • 妙用Ajax技术实现局部刷新商品数量和总价实例代码

    这篇文章主要给大家介绍妙用ajax技术实现局部刷新商品数量和总价实例代码,非常不错,需要的朋友一起看看吧 1. 问题的分析   先看一下页面中的情况:     功能如上,在没有Ajax之前,一般都是根据用户修改的值去找Action,然后返回…

    2025年3月8日
    200
  • laypage前端分页插件实现ajax异步分页

    laypage是一款多功能的js分页组件,即适用于异步分页,又可用于传统的整页刷新跳页,还支持信息流加载,并且可无缝迁移至node.js平台,这篇文章主要介绍了laypage前端分页插件,实现ajax异步分页,需要的朋友可以参考下 本文实例…

    编程技术 2025年3月8日
    200
  • 如何使用AJAX实现按需加载

    如何使用ajax实现按需加载?下面我就为大家带来一篇如何使用ajax实现按需加载【推荐】。我觉得挺不错的,现在分享给大家,也给大家做个参考。 按需加载的优势:在实际调查中发现,很多的网民在游览网站时具有明确的指向性,往往在进入主页后直接搜索…

    编程技术 2025年3月8日
    200
  • Django框架利用ajax实现批量导入数据功能

    这篇文章主要介绍了django框架利用ajax实现批量导入数据功能的相关资料,需要的朋友可以参考下 本文实例为大家分享了网页中利用ajax实现批量导入数据功能的实现方法,供大家参考,具体内容如下 url.py代码: url(r’^worki…

    编程技术 2025年3月8日
    200
  • PromiseA+的实现步骤详解

    这次给大家带来PromiseA+的实现步骤详解,PromiseA+实现的注意事项有哪些,下面就是实战案例,一起来看一下。 Promise 手写一个PromiseA+的实现。注意这里只是模拟,实际上原生的promise在事件队列中属于micr…

    编程技术 2025年3月8日
    200
  • 前端页面内实现左右摇摆广告

    这次给大家带来前端页面内实现左右摇摆广告,前端页面内实现左右摇摆广告的注意事项有哪些,下面就是实战案例,一起来看一下。 代码解读 定义 dom,容器中包含公告牌、挂公告牌的细绳和固定绳子的 3 个图钉: THANKS 登录后复制 居中显示:…

    编程技术 2025年3月8日
    200
  • 基于ajax的简单搜索实现方法

    这篇文章主要介绍了基于ajax的简单搜索实现方法,结合实例形式较为详细的分析了ajax调用实现搜索功能的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了基于ajax的简单搜索实现方法。分享给大家供大家参考,具体…

    编程技术 2025年3月8日
    200
  • jquery1.8版本使用ajax实现微信调用出现的问题分析及解决办法

    这篇文章主要介绍了jquery1.8版本使用ajax实现微信调用出现的问题分析及解决办法的相关资料,需要的朋友可以参考下 先给大家说下问题背景:最近在做一个项目,开发微信的某个功能,使用的是asp.net开发,jquery1.8.0版本。 …

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论