实验五 AJAX开发及JSP验证码

28 篇文章 3 订阅
12 篇文章 5 订阅

实验五  AJAX开发及JSP验证码

一、实验目的 

1.了解AJAX技术的原理及开发。

2.掌握验证码的开发、刷新和验证方法。

二、实验学时

2H

三、实验性质

综合性实验

四、实验内容

A.在实验四基础上使用AJAX技术实现异步登录功能。(40分)

B.在登录表单中,显示数字验证码,如果用户看不清,可以点击验证码或者旁边的“看不清”链接来重新获取验证码,并要求有验证功能。(30分)

C.将验证码变为数字和字母的混合。(20分)

、源代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>AJAX实现验证码交互</title>  

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">

    <style type="text/css">

        body{

        width: 100%;

        height:98%

        }

        div{

            position:relative;

            left:50% ;top:10%;

            margin-left:-200px;

            width:400px;

        }

        .codeInput{

        height:25px;

        }

        .codeImage{

            height:25px;

            position: relative;

            top: 5px;

            left:2px;

        }

        #resultTipID{

            display:none;

            position: relative;

            top: 3px;

            left:5px;

            width:15px;

            height:15px;

        }

    </style>

    <script type="text/javascript">

    function createAjax(){

        var xmlhttp;

        if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari

          xmlhttp=new XMLHttpRequest();

        }

        else{// code for IE6, IE5

          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

        }

        return xmlhttp;

    }

    function trim(str){

        //首先判断类型,是String类型才可以操作否则直接返回

        var type= typeof(str);

        if(type=='string'){

            str=str.replace(/^\s+/,"");//替换字符串开头的所有" "-->""

            str=str.replace(/\s+$/,"");//替换字符串结尾的所有" "-->""

        }

        return str;

    }

    </script>

  </head>

  <body>

    <div id="codeForm" align="center">

        验证码:<input type="text" id="codeID" maxlength="4" size="4px" class="codeInput">

        <img id="codeImageID" alt="刷新" src="generateCode.jsp" class="codeImage" >

        <img id="resultTipID" src="#" />

    </div>

  </body>

    <script type="text/javascript">

        document.getElementById("codeImageID").οnclick=function(){

            //当单击验证码图片,只需要改变一个img标签的src,完成验证码的刷新

            var url="${pageContext.request.contextPath}/generateCode.jsp?time="+new Date().getTime();

            var imageElement=document.getElementById("codeImageID");

            this.src=url;

        }

        document.getElementById("codeID").οnkeyup=function(){

            var value=this.value;

            value=trim(value.toUpperCase());

            this.value=value;

            var tipElement=document.getElementById("resultTipID");

            if(value.length==4){

                //创建ajax对象

                var ajax=createAjax();

                //设置method和url

                var method="POST";

                var url="${pageContext.request.contextPath}//verificateCodeServlet";

                //准备ajax

                ajax.open(method,url);

                //设置post传递请求头,固定写法

                ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");

                //发送

                var content="verificationCode="+value;

                ajax.send(content);

                //------------等待服务器端响应处理-----------------

                ajax.onreadystatechange=function(){

                    if (ajax.readyState==4 && ajax.status==200){

                        var url= ajax.responseText;

                        //设置tip属性

                        tipElement.src=url;

                        //修改css,显示tip

                        tipElement.style.display='inline';

                    }

                }               

            }else{

                tipElement.style.display='none';

            }

        }

    </script>

</html>

、实验总结

请书写你对本次实验有哪些实质性的收获和体会,以及对本次实验有何良好的建议?(10分)

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot可以通过使用AJAX技术实现邮箱发送验证码功能。以下是一个实现的示例: 1. 在前端页面中,使用HTML和JavaScript创建一个表单来接收用户的邮箱信息和验证码。包括一个输入邮箱的文本框、一个发送验证码按钮和一个输入验证码的文本框。 2. 在JavaScript中,使用jQuery的AJAX方法来发送POST请求。请求的URL是后端的邮件发送接口地址,请求的数据是用户输入的邮箱信息。 3. 在后端Spring Boot应用的控制器中,创建一个邮件发送的接口。接收到前端发送的请求后,从请求中用户输入的邮箱信息,并生成一个随机的验证码。 4. 使用JavaMail发送邮件,将验证码内容以邮件的形式发送给用户的邮箱。 5. 将生成的验证码存储到缓存或者数据库中,以便后续的校验。 6. 将邮件发送的结果返回给前端,以便用户得知是否发送成功。 7. 在前端页面中,接收到后端返回的邮件发送结果后,根据结果进行相应的处理,例如显示成功或错误信息。 8. 当用户输入验证码并点击验证码提交按钮时,使用AJAX方法发送POST请求到后端的校验接口。 9. 在后端的控制器中,接收到校验请求后,从缓存或者数据库中检索出之前发送给用户验证码,并将用户输入的验证码进行比对。 10. 根据验证码的比对结果,返回相应的校验结果给前端。 通过以上步骤,我们可以实现使用Spring Boot和AJAX技术来实现邮箱发送验证码的功能。用户输入邮箱后,点击发送验证码按钮后,会异步调用后端的邮件发送接口,并将结果返回给前端。用户在收到邮件后,输入验证码并点击提交按钮后,会异步调用后端的校验接口,进行验证码的校验,并将校验结果返回给前端。这样可以实现用户通过邮箱接收验证码的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值