简单易懂:Ajax入门实例详解(登录功能)

news2025/1/16 19:08:51

前言:不积跬步无以至千里,不积小流无以成江河!

废话不多,以最简练的语言和实例初步了解Ajax!

 

一、Ajax简介

Ajax(Asynchronous JavaScript and XML)是一种基于Web技术的编程实现方式,它使用JavaScript和XML来实现异步的数据交互。JavaScript负责发起请求和处理响应,而XML则负责将数据与页面分离。Ajax能够在不刷新整个页面的情况下更新页面内容,提高了页面的响应速度和用户体验。

 

 二、Ajax用法

 

以JQuery写法:

<script>

$Ajax{

url:请求的页面地址

method:请求方法(POST、GET、DELETE等等)

data 传输数据

{

data1:数据1

data2:数据2

}

dataType:数据类型

success:function()请求成功后执行的方法

error:function()请求失败后执行的方法

</script>

结合 一个简单的登录页面来理解:

 

<body>
<div>
    <span>账号:</span>
    <input type="text"  name="username">
    <br>
    <span>密码:</span>
    <input type="password"  name="password">
    <br>
    <button >登录</button>
</div>
</body>

 其Ajax请求用法如下:

即获取两个输入框内值,传递给后端控制器进行逻辑处理,返回值为true则说明匹配成功则控制台打印成功!

<script>
    $("button").click(function () {
        var Username=$("input[name='username']").val();
        var Password=$("input[name='password']").val();
        $.ajax(
            {
                url:"LoginAjax",
                method:"post",
                data:
                    {
                        username:Username,
                        password:Password
                    },
                dataType:"json",
                success:function (Result)
                {
                    
                        console.log(“登录成功!”);
                   
                }
            });
    });
</script>

三、实例演示

1、创建一个LoginAjax的jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script src="js/jquery-3.1.1.min.js"></script>
    <style>
        div{
            position: relative;
            left: 40%;
            top: 30%;
            float: left;
        }
    </style>
</head>
<body>
<div>
    <span>账号:</span>
    <input type="text"  name="username">
    <br>
    <span>密码:</span>
    <input type="password"  name="password">
    <br>
    <button >登录</button>
</div>
<script>
    $("button").click(function () {
        var Username=$("input[name='username']").val();
        var Password=$("input[name='password']").val();
        $.ajax(
            {
                url:"LoginAjax",
                method:"post",
                data:
                    {
                        username:Username,
                        password:Password
                    },
                dataType:"json",
                success:function (Result)
                {
                    if (Result.result)
                    {
                        location.href="index.jsp";
                        console.log(Result.message);
                    }
                    else console.log(Result.message);
                }
            });
    });
</script>
</body>
</html>

 2、编写LoginAjax类继承HTTPSerlet

package com.example.javatest;
import com.fasterxml.jackson.databind.ObjectMapper;
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;
@WebServlet("/LoginAjax")
public class LoginAjax extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//无论是GET还是POST都能用Get方法实现
        doGet(req, resp);
    }
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        ResultMap Rm=new ResultMap();
        request.setCharacterEncoding("utf-8");
        try {
            if (username.equals("admin")&&password.equals("pwd"))
            {
                Rm.setMessage("Success!");
                Rm.setResult(true);
            }
            else
            {
                Rm.setResult(false);
                Rm.setMessage("False!");
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        ObjectMapper Om=new ObjectMapper();//把对象转换成json格式
        String jason=Om.writeValueAsString(Rm);
        response.getWriter().println(jason);

    }
}

3、结果集类ResultMap

package com.example.javatest;
public class ResultMap {
    protected String message;
    protected  boolean result;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public boolean getResult() {
        return result;
    }

    public void setResult(boolean result) {
        this.result = result;
    }
}

四、结果测试

启动TomaCat,浏览器访问对应的页面输入账号密码:

密码错误:

密码正确:

跳转到主页

 

发文不易,恳请大佬们高抬贵手!


点赞:随手点赞是种美德,是大佬们对于本人创作的认可!


评论:往来无白丁,是你我交流的的开始!


收藏:愿君多采撷,是大佬们对在下的赞赏!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/557251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【CCIG技术论坛回顾】展望AI时代,把握文档图像智能分析与处理的未来

展望AI时代&#xff0c;把握文档图像智能分析与处理的未来 前言 CCIG技术论坛 内容回顾及探讨一、人工智能大模型时代的文档识别与理解1.1 文档分析与识别 介绍1.2 文档识别历史回顾1.3 文档的种类与研究问题1.4 文档识别与理解研究现状1.5 大模型带来的挑战与机遇1.5.1 ChatGP…

chrome和Chromedriver版本不一致的问题,然后就要下载对应版本的chromedriver。

很多人会遇到chrome和Chromedriver版本不一致的问题&#xff0c;然后就要下载对应版本的chromedriver。 下面说一下我遇到的问题和解决过程&#xff1a; 1、问题&#xff1a; 我是用pythonselenium 我的chrome版本是65.0.3325.181&#xff0c;用selenium中的webdriver时&am…

案例16:Java音乐网站系统设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; java项目精品实战案例《100套》 Jav…

MySQL-多表查询(中)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有收获&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️树高千尺&#xff0c;落叶归根人生不易&…

Linux指令速查

文章目录 Linux指令速查1.Linux初步认识1.1 Linux标识符1.2 Linux目录结构1.2.1 (/)目录结构说明1.2.2 目录颜色说明 1. 帮助命令1.1 help指令1.2 man指令 2. 快捷操作3. 文件或目录的管理3.1 处理目录的基本命令3.1.1 列出目录&#xff08;ls&#xff09;3.1.2 切换目录&#…

怎么申请免费的cdn?带附件图文详细操作

背景 我的服务器在国外&#xff0c;域名国内正规备案&#xff0c;但由于国外服务器到国内实在太慢&#xff0c;所以用了cdn&#xff0c;先是用cloudflare&#xff0c;结果慢的惊人&#xff0c;本来测速需要12s&#xff0c;加上cloudflare之后需要15s以上。。。 测速的网站是这…

chatgpt赋能Python-python_dingtalk

Python DingTalk&#xff1a;高效企业通讯利器 当今互联网时代&#xff0c;企业内部沟通必不可少。在成千上万的企业应用中&#xff0c;DingTalk作为高效沟通工具被越来越多的企业所使用。Python DingTalk库的出现&#xff0c;为企业带来了更加方便快捷的通讯方式。 什么是Py…

【数据结构】图的定义,存储,遍历

&#x1f38a;专栏【数据结构】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Dream It Possible】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 目录 &#x1f354;前言 &#x1f381;图的定义 &a…

安全中级2:nginx的中间件漏洞

目录 一、nginx解析php的流程 1.原理 2.CGI、FastCGI、PHP-FPM、PHP-CG、WrapperI的定义 二、Fastcgi协议 1.Fastecgi Record 2.Fastcgi Type 3.PHP-FPM(FastCGI进程管理器) 4.总结FastCGI解析的流程 三、nginx配置错误导致的漏洞 1.CRLF注入漏洞&#xff08;$uri解…

rk3568 适配rk809音频

rk3568 适配rk809音频 RK809是一款集成了多种功能的电源管理芯片&#xff0c;主要用于笔记本电脑、平板电脑、工控机等设备的电源管理。以下是RK809的详细功能介绍&#xff1a; 电源管理&#xff1a;控制电源的开关、电压、电流等参数&#xff0c;保证设备的稳定运行。音频管…

开放原子训练营(第三季)inBuilder低代码开发实验室之人人都是开发者

目录 前言: 一、知己知彼 1.1全场景 全角色 多终端 快速开发 1.2直觉化 响应式 1.3所见即所得 1.4全栈开发 二、百战百胜 2.1inBuilder开发入门 2.2点火启动&#xff0c;新的征程 三、实战表现 3.1实战总结 3.2实战效果 四、总结 前言: 2023年&#xff0c;是我们摘…

chatgpt赋能Python-python_embedded_null_character

Python中嵌入空字符的介绍 在Python编程语言中&#xff0c;空字符是一种特殊的字符&#xff0c;它在字符串中表示为空格或空行。不过&#xff0c;在某些情况下添加一个空字符是非常必要的&#xff0c;例如在编码时需要将字符串以空字符分隔&#xff0c;或者在数据库存储中需要…

CC++——深入探究动态内存管理

文章目录 总述C&C程序内存区域划分C内存管理方式运用new/delete操作内置类型new和delete操作自定义类型 operator new与operator delete函数new和delete操作符的实现原理自定义类型 malloc/free 和 new/delete 的区别 总述 俗话说&#xff0c;没有理解过底层的c&c程序员…

性能测试——服务端监控工具nmon

这里写自定义目录标题 一、性能监控工具nmon介绍二、nmon可监控的数据类型三、nmon特点四、Linux下安装1、检查安装环境2、下载nmon3、解压 五、运行nmon1、启动nmon2、常用nmon快捷命令3、nmon命令行参数4、命令行例子5、重点 六、查看 nmon 监控结果1、nmon_analyser 介绍2、…

AI:Vue2和Vue3的对比

1. 什么是Vue.js以及Vue.js在前端开发中的重要性。 Vue.js是一个遵循MVVM&#xff08;Model-View-ViewModel&#xff09;模式的前端JavaScript框架&#xff0c;它采用了双向数据绑定和组件化的思想&#xff0c;使得前端开发变得更加简洁、高效、可维护。Vue.js由中国工程师尤雨…

chatgpt赋能Python-python_dlib

Python Dlib&#xff1a;从入门到实践 Python Dlib 是一个用于人脸检测、跟踪和姿态估计的高性能C库&#xff0c;提供 Python 接口方便调用。它是一个开源项目&#xff0c;被广泛应用于计算机视觉、图像处理和机器学习等领域。本文将从介绍Dlib的原理、特点以及应用场景等方面…

Rshiny基本函数(交互式web应用)

Rshiny基础函数 引言shiny包的下载shinyApp的构成ui的设计函数HTML类比img函数无法加载图片控件函数ui设计的输出对象 server总结 引言 R语言shiny包可以帮助我们轻松的制作交互式的web应用&#xff0c;并且可以搭建为独立的桌面可执行程序&#xff0c;非常方便制作和分享&…

人工智能(柴玉梅)第四章课后部分习题答案(仅供参考)

注释部分只是复习用&#xff0c;不是答案 第五题 注释&#xff1a;便于复习 本来想搜个类似的&#xff0c;结果发现r1这种人家都带括号&#xff01;&#xff01;&#xff01;额&#xff0c;没括号那我就从前往后算了&#xff0c;按顺序算准没错~ CF&#xff08;H&#xff09;的…

Python logging使用

目录 logging模块 logging核心组件 logger handler StreamHandler&#xff1a;把日志内容在控制台中输出 FileHandler&#xff1a;把日志内容写入到文件中 filter formatter 注意日志级别的继承问题 logger.exception 上述样例的整体代码 日志的配置文件及其模板 lo…

用Python爬取了三大相亲软件评论区,结果…

小三&#xff1a;怎么了小二&#xff1f;一副愁眉苦脸的样子。 小二&#xff1a;唉&#xff01;这不是快过年了吗&#xff0c;家里又催相亲了 ... 小三&#xff1a;现在不是流行网恋吗&#xff0c;你可以试试相亲软件呀。 小二&#xff1a;这玩意靠谱吗&#xff1f; 小三&#…