1:ajax是什么(https://www.w3school.com.cn/ajax/ajax_intro.asp)?

  • AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
  • AJAX = 异步 JavaScript 和 XML。

  • AJAX 是一种用于创建快速动态网页的技术。

  • 通过在后台与服务器进行少量数据交换,可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

  • 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

2:怎么使用ajax:

准备工作:

  • 准备一个jQuery的插件库 可以下载也可以使用在线的CND:<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
  • 我这边是使用的是下载的

因为我这边是连接数据库给的数据 所以数据库文件:

/*
Navicat Premium Data Transfer Source Server : good
Source Server Type : MySQL
Source Server Version : 80019
Source Host : localhost:3306
Source Schema : luyunjie Target Server Type : MySQL
Target Server Version : 80019
File Encoding : 65001 Date: 21/03/2021 15:35:02
*/ SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0; -- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`loginName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`loginPwd` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`realName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; -- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES (1, 'lyj', '12356', '陆云杰'); SET FOREIGN_KEY_CHECKS = 1;

然后配置yaml文件:

spring:
datasource:
username: root
password: 5825600
#填写你的mysql密码和账户
#?serverTimezone=UTC解决时区的报错
url: jdbc:mysql://localhost:3306/luyunjie?useSSL=false&useUnicode=false&characterEncoding=UTF-8&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource mybatis:
configuration:
mapUnderscoreToCamelCase: true
#Spring Boot 默认是不注入这些属性值的,需要自己绑定
#druid 数据源专有配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority
#则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

数据库 实体类User:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String loginName;
private String loginPwd;
private String realName;
}

Mapper接口:

@Repository
@Mapper
public interface UserMapper {
@Select("select loginName from t_user")
String getName();
@Select("select loginPwd from t_user")
String getloginPwd(); }

重写server层:

public interface UserMapperImp {
String getName(); String getloginPwd();
}

接口实现类UserServlet :

@Service
public class UserServlet implements UserMapperImp{
@Autowired
UserMapper mapper;
@Override
public String getName() {
return mapper.getName();
} @Override
public String getloginPwd() {
return mapper.getloginPwd();
}
}

在测试类中测试 如果结果如下 即可:

Controller层:MyAjax:

@CrossOrigin//解决跨域问题
@Controller
public class MyAjax {
@Autowired
UserServlet userServlet;
@RequestMapping("/jie")
@ResponseBody
public String index(String name , String pwd){
String msg="";
if (name!=null){
if (userServlet.getName().equals(name)){
msg=" OK";
}else {
msg="账户错误";
}
}if (pwd!=null){
if (userServlet.getloginPwd().equals(pwd)){
msg=" OK";
}else {
msg="密码错误";
}
}
return msg;
}
}

编写index.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax</title>
<script src="jquery-3.1.0.js"></script>
</head>
<body>
<p>
用户名:<input type="text" id="name" onblur="a1()"/>
<span id="username"></span>
</p>
<p>
密码:<input type="text" id="pwd" onblur="a2()"/>
<span id="userpwd"></span>
</p>
</body>
</html>

javascript部分:

<script>

        function a1(){
$.post({
url:"http://localhost:8080/jie",
data:{'name':$("#name").val()},
success:function (data) {
if (data.toString()=='OK'){
$("#username").css("color","green");
}else {
$("#username").css("color","red");
}
$("#username").html(data);
}
});
}
function a2(){
$.post({
url:"http://localhost:8080/jie",
data:{'pwd':$("#pwd").val()},
success:function (data) {
if (data.toString()=='OK'){
$("#userpwd").css("color","green");
}else {
$("#userpwd").css("color","red");
}
$("#userpwd").html(data);
}
});
} </script>

测试:

 下面来讲解一下:jQuery.ajax(...)里面的参数是什么(小部分)

  参考狂神的ajax笔记(https://mp.weixin.qq.com/s/tB4YX4H59wYS6rxaO3K2_g):

  •  url:请求地址
  • type:请求方式(post get) 但一般不用 一般需要post请求或者get请求 把ajax替换成post或者get即可
  •  headers:请求头
  • data:要发送的数据
  • contentType:即将发送信息至服务器的内容编码类型
  • timeout:设置请求超时时间(毫秒)
  •  async:是否异步
  • "json": 将服务器端返回的内容转换成相应的JavaScript对象
  •  "jsonp": JSONP 格式使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数

    小杰复习参考笔记

SpringBoot结合ajax实现登录功能的更多相关文章

  1. (22)Ajax的基本使用(实现登录功能和局部刷新以及防止跨站请求伪造攻击)

    Ajax的作用 前后端分离的项目,需要交互,就要通过Ajax来完成交互 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即 ...

  2. django BBS project login登录功能实现

    1.models from django.db import models # Create your models here. from django.contrib.auth.models imp ...

  3. 一步步使用SpringBoot结合Vue实现登录和用户管理功能

    前后端分离开发是当今开发的主流.本篇文章从零开始,一步步使用SpringBoot结合Vue来实现日常开发中最常见的登录功能,以及登录之后对用户的管理功能.通过这个例子,可以快速入门SpringBoot ...

  4. SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能

    在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...

  5. 前后端通信中使用Ajax与后台接口api交互(以登录功能为例)

    一.查阅开发文档 首先,要做这个功能前,我们必须先查阅后台接口文档,了解使用登录接口时,需要提交哪些参数,并且接口使用返回的数据. 这里我使用了一个返回json格式数据的登录接口为例,讲解怎么使用Aj ...

  6. Springboot实现登录功能

    SpringBoot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再 ...

  7. 项目:jSon和Ajax登录功能

    组件化网页开发 / 步骤二 · 项目:jSon和Ajax登录功能 要熟练编写封装的$.ajax({........})

  8. 实现Web请求后端Api的Demo,实现是通过JQuery的AJAX实现后端请求,以及对请求到的数据的解析处理,实现登录功能

    本篇实现Web请求后端Api的Demo,实现是通过JQuery的AJAX实现后端请求,以及对请求到的数据的解析处理,实现登录功能需求描述:1. 请求后端Api接口地址2. 根据返回信息进行判断处理前端 ...

  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-1.数据信息安全--微信授权一键登录功能介绍

    笔记 1.数据信息安全--微信授权一键登录功能介绍 简介:讲解登录方式优缺点和微信授权一键登录功能介绍         1.手机号或者邮箱注册             优点:              ...

  10. 基于SpringBoot从零构建博客网站 - 整合ehcache和开发注册登录功能

    对于程序中一些字典信息.配置信息应该在程序启动时加载到缓存中,用时先到缓存中取,如果没有命中,再到数据库中获取同时放到缓存中,这样做可以减轻数据库层的压力.目前暂时先整合ehcache缓存,同时预留了 ...

随机推荐

  1. 好用!这些工具国庆一定要研究下「GitHub 热点速览」

    再过 3 天就要开始一年最长的假期--国庆长假了,这次除了宅家.出游之外,多了一个新选项:研究下哪些项目可以安排上,来辅助自己的日常开发. 你觉得一周获得 4k star 的 hyperdx 如何,它 ...

  2. Merkle Tree 简介

    Merkle 树(Merkle Tree)是一种树状数据结构,通常用于验证大规模数据集的完整性和一致性.它的名字来源于其发明者 Ralph Merkle.Merkle 树在密码学.分布式系统和区块链等 ...

  3. windows开发环境备份,再也不怕重装系统了

    每次重装系统后,都要重新安装软件,配置环境变量,极为繁琐.故作环境环境变量备份,常用软件恢复记录,前提是你的软件要安装在非系统盘,D/E盘等 软件安装在非系统盘 开发软件安装在非系统盘,建好目录.重装 ...

  4. CF1333A [Little Artem]

    Problem 题目简述 给你一个 \(n \times m\) 的方格,构造一个方案,使得方案中 \(B = W + 1\). \(B\):相邻的格子有至少一个白色格子的黑色格子的个数. \(W\) ...

  5. P9073 [WC/CTS2023] 楼梯 题解

    题目链接 简要题意 有一块楼梯,这里指的楼梯是倒着的,正过来看上一层宽度一定小于等于这一层宽度,并且由格子组成,你需要对其进行增删和恢复某一历史版本的操作,并回答这块楼梯是否有固定格数的子楼梯. 题目 ...

  6. 【闭包应用】JS:防抖、节流

    1.防抖:当进行连续操作时,只执行最后一次的操作. //防抖的概念是 当进行连续操作时,只执行最后一次的操作. function debounce(fn, delayTime) { let timeo ...

  7. JavaScript:对象的三个属性

    每一个对象都有与之相关的原型(prototype).类(class)和可扩展性(extension attribute). 原型 prototype 对象的原型属性是用来继承属性的.通过对象直接量创建 ...

  8. 数据结构-线性表-单循环链表(使用尾指针)(c++)

    目录 单循环链表 说明 注意 (一)无参构造函数 (二)有参构造函数 (三)析构函数 (四)获取长度 (五)打印数组 (六)获取第i个元素的地址 (七)插入 (八)删除 (九)获取值为x的元素的位置 ...

  9. mysql 代码适配 postgresql 适配改写,优化案例(行转列 + 标量子查询改写)

    最近在适配个MySQL应用的项目,各种SQL改成PG兼容的语法真的是脑壳痛,今天遇到个有意思的案例. 原 MySQL SQL语句: SELECT DISTINCT l.MALL_NAME '项目', ...

  10. Java核心知识体系6:集合框架详解

    Java核心知识体系1:泛型机制详解 Java核心知识体系2:注解机制详解 Java核心知识体系3:异常机制详解 Java核心知识体系4:AOP原理和切面应用 Java核心知识体系5:反射机制详解 1 ...