使用JQuery与Servlet实现Ajax

使用JQuery与Servlet实现ajax 登录验证(异步刷新)

环境搭建

首先需要先搭建环境,使用idea 创建一个web项目 使用maven管理

运行环境为 Tomcat 8.5.51 + jdk1.8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wPqmXSx2-1609212755710)(C:\Users\hu\AppData\Roami在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ng\Typora\typora-user-images\1609210675284.png)]

生成一个maven maven 可以很干净的 插件这些都能删

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sivx1sip-1609212755712)(C:\Users\hu\AppData\Roaming\Typora\typora-user-images\1609210830372.png)]

接下来 导入项目所需要的包 这里我们使用 maven 来管理依赖

<dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
    </dependencies>

将maven 依赖 写入 pom.xml 中

idea集成配置tomcat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gW1wGtPf-1609212755713)(C:\Users\hu\AppData\Roaming\Typora\typora-user-images\1609211024488.png)]

Run下面 有一个

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BUU7WZto-1609212755715)(C:\Users\hu\AppData\Roaming\Typora\typora-user-images\1609211072771.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pAqvjnHz-1609212755716)(C:\Users\hu\AppData\Roaming\Typora\typora-user-images\1609211090828.png)]

点击加号 不要在templates里面找

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Of6UJ7R-1609212755717)(C:\Users\hu\AppData\Roaming\Typora\typora-user-images\1609211127198.png)]

往下面翻找到Tomcat Server 点击 第一个 也就是本地

这里 使用 tomcat8 + jdk1.8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DSIc9gSx-1609212755718)(C:\Users\hu\AppData\Roaming\Typora\typora-user-images\1609211238910.png)]

这样 一个idea web 就配置完成了

前端代码

接下来 在jsp页面中 写入

这里我直接给代码

这里要注意 需要导入一个 JQuery 的文件

创建一个 statics 文件 将js 文件 放入其中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NmOhMYSr-1609212755718)(C:\Users\hu\AppData\Roaming\Typora\typora-user-images\1609211597886.png)]

<%--
  Created by IntelliJ IDEA.
  User: hu
  Date: 2020/12/29
  Time: 9:34
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script src="${pageContext.request.contextPath}/statics/js/jquery-3.1.0.js"></script>
    
    <script type="text/javascript">
        function a1() {
            $.ajax({
                url: "${pageContext.request.contextPath}/ajax",
                data: {"username": $("#username").val()},
                success: function (data) {
                    console.log(data)
                    if (data == 'yes') {
                        $("#span01").css("color","green");
                        $("#span01").html("账号正确");
                    }else if (data == 'no'){
                        $("#span01").css("color","red");
                        $("#span01").html("账号错误");
                    }else {
                        $("#span01").html("");
                    }
                }
            })
        }
        function a2(){
            $.ajax({
                url: "${pageContext.request.contextPath}/ajax2",
                data: {"password": $("#password").val()},
                success: function (data) {
                    console.log(data)
                    if (data == 'yes') {
                        $("#span02").css("color","green");
                        $("#span02").html("密码正确");
                    }else if (data == 'no'){
                        $("#span02").css("color","red");
                        $("#span02").html("密码错误");
                    }else {
                        $("#span02").html("");
                    }
                }
            })
        }
    </script>
</head>
<body>
用户名:<input type="text" id="username" οnkeyup="a1()"/>
<span id="span01"></span>
</br>
密码:<input type="password" id="password" οnkeyup="a2()"/>
<span id="span02"></span>
</body>
</html>

这里带大家进行分析

先创建2 个输入框 分别 加入 2个 键盘弹起事件 a1() a2() 2个js 函数

a1 a2 同理 带大家分析 a1

$.ajax() 是一个 jquery封装的 函数 默认 异步 请求 有同步设置 这里只提异步

3个常用 参数

​ url:提交请求的路径

​ data : 从前端 请求 传入的 参数 json 传输

​ success : 回调函数 请求执行完 执行的一个函数

​ function(date) 这里面的 date 是从后端响应 返回 的 值

function a1() {
            $.ajax({
                url: "${pageContext.request.contextPath}/ajax",
                //这里是 一个后端 servlet 请求 将业务交给后端处理
                
                data: {"username": $("#username").val()},
                //这里是 传输给 后端的参数
                success: function (data) {
                    // servlet 执行完 返回一个 响应 
                    // 这里的date 为 后端 resp.getWriter().write("yes"); write返回的值
                    // 解析 data 值 判断情况 改变 jsp的状态 实现 局部刷新 也就是异步请求
                    console.log(data)
                    if (data == 'yes') {
                        $("#span01").css("color","green");
                        $("#span01").html("账号正确");
                    }else if (data == 'no'){
                        $("#span01").css("color","red");
                        $("#span01").html("账号错误");
                    }else {
                        $("#span01").html("");
                    }
                }
            })
        }

后端代码

package com.huyuya.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.HttpCookie;

/**
 * @author huyu
 * @version 1.0
 * @date 2020/12/29 9:45
 */
public class AjaxTest extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //从请求中 得到 1个参数 (data中得到的)
        String username = req.getParameter("username");
        System.out.println(username);
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        //判断 是不是正确的账号  根据情况判断 返回状态给前端 
        if(username!=null && !username.equals("")){
            if("admin".equals(username)){
                resp.getWriter().write("yes");
            }else {
                resp.getWriter().write("no");
            }
        }else {
            resp.getWriter().write("null");
        }

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}

resp.getWriter().write(“null”);
}

}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doGet(req,resp);
}

}


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值