Ajax异步验证-----jQuery

    Ajax开发技术可以实现页面的局部更新,而不影响整体。
    由于异步验证执行JavaScript操作过于繁琐了解即可。这里用jQuery实现Ajax的异步验证。
需求:当用户输入ID之后,会使用Ajax将信息提交到服务器上进行验证,如果此ID没有被人使用,则提示正确;如果有人使用,则提示错误信息。
数据库user表结构
在这里插入图片描述
一、直接上代码
1、 编写注册表单页。----regist.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script src="js/jquery-3.3.1.min.js" type="text/javascript"></script>
<script language="JavaScript">
    var flag;
    function fun(userid) {
        //使用$.ajax()发送异步请求
        $.ajax({
            url: "CheckServlet",   //请求路径
            type: "POST",  //请求方式
            data: {"userid": userid},
            success: function (data) {                      //data为接收servlet传来的数据
                if (data == "true") {
                    flag = false;
                    $("#msg").html("用户ID重复,无法使用");
                } else {
                    flag = true;
                    /*错误的写法 $("#msg").html = "此用户ID可以注册"*/
                   $("#msg").html("此用户ID可以注册");
                    /* /!*  alert("此用户ID可以注册");*!/测试用的*/
                }
                //alert(data);测试接收的数据
            }//响应成功后的回调函数
        });
    }
    function checkForm() {
        return flag;
    }
</script>
<from action="regist.jsp" method="post" onsubmit="return checkForm()">
    用户ID:<input type="text" name="userid" onblur="fun(this.value)"><span id="msg"></span><br>
    姓&nbsp;&nbsp;名:<input type="text" name="name"><br>
    密&nbsp;&nbsp;码:<input type="password" name="password"><br>
    <input type="submit" value="注册">
    <input type="reset" value="重置">
</from>
</body>
</html>

2、 验证用户名是否存在----CheckServlet.java

package cn.anxincao.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
@WebServlet("/CheckServlet")
public class CheckServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("GBK");
        response.setContentType("text/html");
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        PrintWriter out = response.getWriter();
        String userid = request.getParameter("userid"); //接收验证的data中的userid注意是userid的名称
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection("JDBC:mysql:///mldn?serverTimezone=UTC", "。。。", "。。。");
            String sql = "select count(userid) from user where userid=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, userid);
            rs = pstmt.executeQuery();
            if (rs.next()) {
                if (rs.getInt(1) > 0) {
                    out.print("true");
                } else {
                    out.print("false");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

二、测试

1.js改为jQuery后,没有得到显示的效果,页面也没有报错纠结了很久,通过alert测试最后确定是代码写错了。servlet的接收名称写错。
在这里插入图片描述2.要一一对应
在这里插入图片描述
3.用另外一个例子再标注详细一点
在这里插入图片描述
4.补充
在MySQL中执行查询语句如下:
ResultSet rs = null;
String sql=“SELECT flow_id,Type,id_card,exam_card,student_name,location,grade FROM examstudent”;
rs = st.executeQuery(sql);
rs:数据集。
rs.getInt(int index);
rs.getInt(String columName);
你可以通过索引或者列名来获得查询结果集中的某一列的值。
例如:while(rs.next)
{
rs.getInt(1)//等价于rs.getInt(“flowid”);
rs.getString(5)//等价于rs.getInt(“student_name”);
}
注意:getInt()和getString()方法的索引值从1开始,表示第一个字段。
三、最后的运行结果图
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jQuery Ajax异步表单可以实现登录效果,具体实现步骤如下: 1. 在HTML页面中创建一个表单,包含用户名和密码输入框,以及一个提交按钮。 2. 使用jQuery的Ajax方法,监听表单的提交事件。 3. 在Ajax方法中,获取表单中的用户名和密码,并将其作为参数传递给后台的登录接口。 4. 后台接口验证用户名和密码是否正确,如果正确则返回登录成功的信息,否则返回登录失败的信息。 5. 在Ajax方法中,根据后台返回的信息,判断登录是否成功,如果成功则跳转到登录后的页面,否则提示用户登录失败。 6. 在HTML页面中,根据登录状态显示不同的内容,例如登录成功后显示用户信息和退出按钮,未登录时显示登录表单。 需要注意的是,为了保证安全性,登录表单需要进行一定的防护措施,例如防止SQL注入、XSS攻击等。同时,后台接口也需要进行身份验证和安全防护,以保证用户数据的安全性。 ### 回答2: jquery ajax是一个非常强大的JavaScript库,它可以通过异步请求来实现与服务器的交互。在web应用中,jquery ajax可以用来实现异步表单登录功能,使用户无需刷新页面即可登录成功。 实现异步表单登录功能的步骤为: 1. 创建表单:在HTML代码中创建一个表单,包括用户名和密码输入框以及提交按钮。给提交按钮添加一个id,用于后续的事件绑定。 2. 事件绑定:使用jquery选择器获取提交按钮的id,然后绑定一个“click”事件,当用户点击提交按钮时,触发事件执行异步请求。 3. 异步请求:在事件处理函数中,使用jquery ajax发送请求到服务器。设置url、type、data、dataType等参数。其中,url表示请求的地址,type表示请求的类型,data表示要发送的数据,dataType表示服务器返回的数据类型。 4. 回调函数:在请求成功后执行回调函数,根据返回的数据来判断用户是否登录成功。如果登录成功,则执行相应的操作,如果登录失败,则提示用户错误信息。 以下是代码的具体实现: HTML代码: ```html <form action="#" method="post"> <div> <label for="username">用户名:</label> <input type="text" id="username" name="username"/> </div> <div> <label for="password">密码:</label> <input type="password" id="password" name="password"/> </div> <div> <input type="button" id="submit" value="登录"/> </div> </form> ``` JavaScript代码: ```javascript $(function(){ $('#submit').click(function(){ var username = $('#username').val(); //获取用户名 var password = $('#password').val(); //获取密码 //异步请求 $.ajax({ url: 'login.php', //请求的地址 type: 'post', //请求的类型 data: {'username': username, 'password': password}, //要发送的数据 dataType: 'json', //服务器返回的数据类型 success: function(data){ //请求成功执行的回调函数 if(data.code == 1){ //登录成功 alert('登录成功'); //执行相应的操作 }else{ //登录失败 alert(data.msg); } }, error: function(){ //请求失败执行的函数 alert('请求失败,请重试!'); } }); }); }); ``` 以上就是使用jquery ajax实现异步表单登录功能的具体步骤和代码实现。需要注意的是,在服务器端要对用户提交的用户名和密码进行验证,以确保登录信息的安全性。同时,还需要对返回的数据进行处理,以便在界面上显示相应的提示信息。 ### 回答3: jQuery是一个广泛使用的JavaScript库,它简化了JavaScript编码,并将它们封装成易于使用的方法和函数。它用来处理事件、动画效果和AJAX请求。 AJAX是一种异步请求数据的技术,可以在不刷新整个页面的情况下向服务器请求数据,并将返回值动态地显示在页面中。在这种情况下,页面不会刷新,该操作是异步完成的。这个过程需要用到jQuery.ajax()方法。 异步表单可以被用来实现登录效果。一旦用户提交表单,它将通过Ajax异步请求向服务器发送用户名和密码。随后,服务器读取这些请求并对其进行验证,然后向该页面发送返回值。最后,我们可以使用JQuery根据这个返回值判断用户是否成功登录。 以下是jQuery AJAX异步表单登录的实现过程: 1. 创建HTML表单 首先,需要在HTML代码中创建一个表单,包含用户名和密码字段和提交按钮。代码如下: ``` <form id="login-form"> <input type="text" name="username" placeholder="请输入用户名"> <input type="password" name="password" placeholder="请输入密码"> <button type="submit">登录</button> </form> ``` 2. 编写AJAX脚本 接下来,需要编写一个AJAX脚本,它将在表单提交时被调用。该脚本将使用JQuery中的$.ajax()方法创建一个异步请求,并将用户名和密码作为参数传递到服务器。AJAX脚本如下所示: ``` $('#login-form').submit(function(event) { event.preventDefault(); var username = $('input[name="username"]').val(); var password = $('input[name="password"]').val(); $.ajax({ url: 'url_to_login_script.php', dataType: 'json', type: 'POST', data: {username: username, password: password}, success: function(data) { if (data.success == true) { // 登录成功 } else { // 登录失败 } } }); }); ``` 3. 编写服务器端代码 接下来,需要编写服务器端代码。在这个例子中,我们使用PHP作为服务器端脚本语言。编写的服务器代码将读取发送请求的参数,对用户名和密码进行验证,并生成JSON格式的响应。服务器端代码如下所示: ``` <?php if ($_POST['username'] == 'admin' && $_POST['password'] == 'admin') { $response = array('success' => true); } else { $response = array('success' => false); } echo json_encode($response); ?> ``` 4. 判断登录结果 最后,在AJAX的回调函数中,判断用户是否成功登录,并根据返回值进行相应操作。在这个例子中,如果返回值中的success属性被设置为true,则可以使用JavaScript代码判断登录结果。 以上就是使用jQuery AJAX异步表单实现登录效果的过程。这种技术广泛应用于许多网站,因为它可以提高用户体验,避免了页面刷新,同时也大大增加了数据的安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值