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

news/2024/10/20 20:52:39/

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

废话不多,以最简练的语言和实例初步了解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 {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//无论是GET还是POST都能用Get方法实现doGet(req, resp);}@Overridepublic 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.ppmy.cn/news/90015.html

相关文章

anr log打印流程---Java层

前言 本问介绍一下anr之后&#xff0c;系统打印log的流程。加深对anr问题的理解。 anr触发原理分析可以看看这个文章http://gityuan.com/2017/01/01/input-anr/ cpp代码比较多&#xff0c;我选择放弃了。从java层log往后看吧。。。 ANR Log anr触发在native层&#xff0c;…

11-FastDFS文件服务器 和 Nginx

1、什么是FastDFS 1、开源的轻量级分布式文件系统,用于解决大数据量存储和负载均衡等问题。 2、优点: 支持HTTP协议传输文件(结合Nginx); 对文件内容做Hash处理,节约磁盘空间; 支持负载均衡、整体性能较佳。 3、FastDFS的二个角色:跟踪服务器(Tracker)、存储服务器…

ApplicationRunner使用

本文来说下CommandLineRunner和ApplicationRunner的使用 文章目录 ApplicationRunner使用示例程序结果 CommandLineRunner使用示例程序结果 ApplicationListener触发时机使用实例程序结果注意问题 ApplicationRunner 使用起来很简单&#xff0c;只需要实现CommandLineRunner或者…

第三十四回:AlertDialog Widget

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Dismissible Widget相关的内容,本章回中将介绍 AlertDialog Widget.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们介绍的AlertDialog是指程序中弹出的确认窗口&#xff0c;其实我们在上一章回中删…

网易易盾流量多发反外挂落地实践

背景及目的 环境迁移 反外挂服务建德机房线上迁移&#xff0c;采取的方案是&#xff1a;建德机房独立部署一套完整的集群&#xff0c;统一经由完整的性能测试、故障演练、功能回归后&#xff0c;通过线上分阶段切换流量的方式来切服务。QA 需要比对验证 2 个不同环境下核心接口…

多目标遗传算法NSGA-II改进策略

上篇写道了关于多目标遗传算法NSGA-II原理详解及算法代码实现&#xff0c;本文将继续在这篇文章的基础上更深一步的向前探索&#xff0c;探索方向为&#xff1a; 基于NSGA-II算法的固有缺点&#xff0c;着重对其算法提出改进策略&#xff0c;并予以代码实现。同样&#xff0c;本…

1112 Stucked Keyboard (PAT甲级)

写完后看柳婼的解法&#xff0c;其实可以直接数重复了几次&#xff0c;我这个写法有点复杂化了。 原代码&#xff1a; #include <iostream> #include <string> #include <set>int main(){int k, j;bool flag;std::set<char> st, printed;std::string…

codeforce第874轮(div3)

地址&#xff1a;codeforce第84轮&#xff08;div3&#xff09; A&#xff1a; 题目的意思是&#xff1a;给定我们一堆包含两个字符的字符串&#xff0c;字符串a和字符串b只要a的后一个字母和b的前一个字母相等即可链接&#xff0c;现在给出最后链接好的字符串&#xff0c;问…