Java Web JavaScript (3)23.7.3

news2025/1/11 18:42:47

7,事件监听

要想知道什么是事件监听,首先先聊聊什么是事件?

HTML 事件是发生在 HTML 元素上的“事情”。比如:页面上的 按钮被点击鼠标移动到元素之上按下键盘按键 等都是事件。

事件监听是JavaScript 可以在事件被侦测到时==执行一段逻辑代码。==例如下图当我们点击 开灯 按钮,就需要通过 js 代码实现替换图片

请添加图片描述

再比如下图输入框,当我们输入了用户名 光标离开 输入框,就需要通过 js 代码对输入的内容进行校验,没通过校验就在输入框后提示 用户名格式有误!

请添加图片描述

7.1 事件绑定

JavaScript 提供了两种事件绑定方式:

  • 方式一:通过 HTML标签中的事件属性进行绑定

    如下面代码,有一个按钮元素,我们是在该标签上定义 事件属性,在事件属性中绑定函数。onclick 就是 单击事件 的事件属性。onclick='on()' 表示该点击事件绑定了一个名为 on() 的函数

    <input type="button" οnclick='on()’>
    

    下面是点击事件绑定的 on() 函数

    function on(){
    	alert("我被点了");
    }
    
  • 方式二:通过 DOM 元素属性绑定

    如下面代码是按钮标签,在该标签上我们并没有使用 事件属性,绑定事件的操作需要在 js 代码中实现

    <input type="button" id="btn">
    

    下面 js 代码是获取了 id='btn' 的元素对象,然后将 onclick 作为该对象的属性,并且绑定匿名函数。该函数是在事件触发后自动执行

    document.getElementById("btn").onclick = function (){
        alert("我被点了");
    }
    

代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!--方式1:在下面input标签上添加 onclick 属性,并绑定 on() 函数-->
    <input type="button" value="点我" onclick="on()"> <br>
    <input type="button" value="再点我" id="btn">

    <script>
        function on(){
            alert("我被点了");
        }
      	//方式2:获取 id="btn" 元素对象,通过调用 onclick 属性 绑定点击事件
        document.getElementById("btn").onclick = function (){
            alert("我被点了");
        }
    </script>
</body>
</html>

7.2 常见事件

上面案例中使用到了 onclick 事件属性,那都有哪些事件属性供我们使用呢?下面就给大家列举一些比较常用的事件属性

事件属性名说明
onclick鼠标单击事件
onblur元素失去焦点
onfocus元素获得焦点
onload某个页面或图像被完成加载
onsubmit当表单提交时触发该事件
onmouseover鼠标被移到某元素之上
onmouseout鼠标从某元素移开
  • onfocus 获得焦点事件。

    如下图,当点击了输入框后,输入框就获得了焦点。而下图示例是当获取焦点后会更改输入框的背景颜色。

    请添加图片描述

  • onblur 失去焦点事件。

    如下图,当点击了输入框后,输入框就获得了焦点;再点击页面其他位置,那输入框就失去焦点了。下图示例是将输入的文本转换为大写。

请添加图片描述

  • onmouseout 鼠标移出事件。

  • onmouseover 鼠标移入事件。

    如下图,当鼠标移入到 苹果 图片上时,苹果图片变大;当鼠标移出 苹果图片时,苹果图片变小。

    请添加图片描述

  • onsubmit 表单提交事件

    如下是带有表单的页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <form id="register" action="#" >
            <input type="text" name="username" />
            <input type="submit" value="提交">
        </form>
        <script>
            
        </script>
    </body>
    </html>
    

    如上代码的表单,当我们点击 提交 按钮后,表单就会提交,此处默认使用的是 GET 提交方式,会将提交的数据拼接到 URL 后。现需要通过 js 代码实现阻止表单提交的功能,js 代码实现如下:

    1. 获取 form 表单元素对象。
    2. form 表单元素对象绑定 onsubmit 事件,并绑定匿名函数。
    3. 该匿名函数如果返回的是true,提交表单;如果返回的是false,阻止表单提交。
    document.getElementById("register").onsubmit = function (){
        //onsubmit 返回true,则表单会被提交,返回false,则表单不提交
        return true;
    }
    

8,表单验证案例

8.1 需求

请添加图片描述

有如下注册页面,对表单进行校验,如果输入的用户名、密码、手机号符合规则,则允许提交;如果不符合规则,则不允许提交。

完成以下需求:

  1. 当输入框失去焦点时,验证输入内容是否符合要求

  2. 当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不合符则阻止表单提交

8.2 环境准备

下面是初始页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>欢迎注册</title>
    <link href="../css/register.css" rel="stylesheet">
</head>
<body>
    <div class="form-div">
        <div class="reg-content">
            <h1>欢迎注册</h1>
            <span>已有帐号?</span> <a href="#">登录</a>
        </div>
        <form id="reg-form" action="#" method="get">
            <table>
                <tr>
                    <td>用户名</td>
                    <td class="inputs">
                        <input name="username" type="text" id="username">
                        <br>
                        <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>
                    </td>
                </tr>

                <tr>
                    <td>密码</td>
                    <td class="inputs">
                        <input name="password" type="password" id="password">
                        <br>
                        <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
                    </td>
                </tr>

                <tr>
                    <td>手机号</td>
                    <td class="inputs"><input name="tel" type="text" id="tel">
                        <br>
                        <span id="tel_err" class="err_msg" style="display: none">手机号格式有误</span>
                    </td>
                </tr>
            </table>
            <div class="buttons">
                <input value="注 册" type="submit" id="reg_btn">
            </div>
            <br class="clear">
        </form>

    </div>


    <script>

    </script>
</body>
</html>

8.3 验证输入框

此小节完成如下功能:

  • 校验用户名。当用户名输入框失去焦点时,判断输入的内容是否符合 长度是 6-12 位 规则,不符合使 id='username_err' 的span标签显示出来,给出用户提示。
  • 校验密码。当密码输入框失去焦点时,判断输入的内容是否符合 长度是 6-12 位 规则,不符合使 id='password_err' 的span标签显示出来,给出用户提示。
  • 校验手机号。当手机号输入框失去焦点时,判断输入的内容是否符合 长度是 11 位 规则,不符合使 id='tel_err' 的span标签显示出来,给出用户提示。

代码如下:

//1. 验证用户名是否符合规则
//1.1 获取用户名的输入框
var usernameInput = document.getElementById("username");

//1.2 绑定onblur事件 失去焦点
usernameInput.onblur = function () {
    //1.3 获取用户输入的用户名
    var username = usernameInput.value.trim();

    //1.4 判断用户名是否符合规则:长度 6~12
    if (username.length >= 6 && username.length <= 12) {
        //符合规则
        document.getElementById("username_err").style.display = 'none';
    } else {
        //不合符规则
        document.getElementById("username_err").style.display = '';
    }
}

//1. 验证密码是否符合规则
//1.1 获取密码的输入框
var passwordInput = document.getElementById("password");

//1.2 绑定onblur事件 失去焦点
passwordInput.onblur = function() {
    //1.3 获取用户输入的密码
    var password = passwordInput.value.trim();

    //1.4 判断密码是否符合规则:长度 6~12
    if (password.length >= 6 && password.length <= 12) {
        //符合规则
        document.getElementById("password_err").style.display = 'none';
    } else {
        //不合符规则
        document.getElementById("password_err").style.display = '';
    }
}

//1. 验证手机号是否符合规则
//1.1 获取手机号的输入框
var telInput = document.getElementById("tel");

//1.2 绑定onblur事件 失去焦点
telInput.onblur = function() {
    //1.3 获取用户输入的手机号
    var tel = telInput.value.trim();

    //1.4 判断手机号是否符合规则:长度 11
    if (tel.length == 11) {
        //符合规则
        document.getElementById("tel_err").style.display = 'none';
    } else {
        //不合符规则
        document.getElementById("tel_err").style.display = '';
    }
}

8.3 验证表单

当用户点击 注册 按钮时,需要同时对输入的 用户名密码手机号 ,如果都符合规则,则提交表单;如果有一个不符合规则,则不允许提交表单。实现该功能需要获取表单元素对象,并绑定 onsubmit 事件

//1. 获取表单对象
var regForm = document.getElementById("reg-form");

//2. 绑定onsubmit 事件
regForm.onsubmit = function () {
    
}

onsubmit 事件绑定的函数需要对输入的 用户名密码手机号 进行校验,这些校验我们之前都已经实现过了,这里我们还需要再校验一次吗?不需要,只需要对之前校验的代码进行改造,把每个校验的代码专门抽象到有名字的函数中,方便调用;并且每个函数都要返回结果来去决定是提交表单还是阻止表单提交,代码如下:

//1. 验证用户名是否符合规则
//1.1 获取用户名的输入框
var usernameInput = document.getElementById("username");

//1.2 绑定onblur事件 失去焦点
usernameInput.onblur = checkUsername;

function checkUsername() {
    //1.3 获取用户输入的用户名
    var username = usernameInput.value.trim();

    //1.4 判断用户名是否符合规则:长度 6~12
    var flag = username.length >= 6 && username.length <= 12;
    if (flag) {
        //符合规则
        document.getElementById("username_err").style.display = 'none';
    } else {
        //不合符规则
        document.getElementById("username_err").style.display = '';
    }
    return flag;
}

//1. 验证密码是否符合规则
//1.1 获取密码的输入框
var passwordInput = document.getElementById("password");

//1.2 绑定onblur事件 失去焦点
passwordInput.onblur = checkPassword;

function checkPassword() {
    //1.3 获取用户输入的密码
    var password = passwordInput.value.trim();

    //1.4 判断密码是否符合规则:长度 6~12
    var flag = password.length >= 6 && password.length <= 12;
    if (flag) {
        //符合规则
        document.getElementById("password_err").style.display = 'none';
    } else {
        //不合符规则
        document.getElementById("password_err").style.display = '';
    }
    return flag;
}

//1. 验证手机号是否符合规则
//1.1 获取手机号的输入框
var telInput = document.getElementById("tel");

//1.2 绑定onblur事件 失去焦点
telInput.onblur = checkTel;

function checkTel() {
    //1.3 获取用户输入的手机号
    var tel = telInput.value.trim();

    //1.4 判断手机号是否符合规则:长度 11
    var flag = tel.length == 11;
    if (flag) {
        //符合规则
        document.getElementById("tel_err").style.display = 'none';
    } else {
        //不合符规则
        document.getElementById("tel_err").style.display = '';
    }
    return flag;
}

onsubmit 绑定的函数需要调用 checkUsername() 函数、checkPassword() 函数、checkTel() 函数。

//1. 获取表单对象
var regForm = document.getElementById("reg-form");

//2. 绑定onsubmit 事件
regForm.onsubmit = function () {
    //挨个判断每一个表单项是否都符合要求,如果有一个不合符,则返回false

    var flag = checkUsername() && checkPassword() && checkTel();

    return flag;
}

9,RegExp对象

RegExp 是正则对象。正则对象是判断指定字符串是否符合规则。

如下图是百度贴吧中的帖子

请添加图片描述

我们可以通过爬虫技术去爬取该页面源代码,然后获取页面中所有的邮箱,后期我们可以给这些邮箱地址发送推广的邮件。那么问题来了,如何才能知道页面内容中哪些事邮箱地址呢?这里就可以使用正则表达式来匹配邮箱。

在 js 中对正则表达式封装的对象就是正则对象。

9.1 正则对象使用

9.1.1 创建对象

正则对象有两种创建方式:

  • 直接量方式:注意不要加引号

    var reg = /正则表达式/;
    
  • 创建 RegExp 对象

    var reg = new RegExp("正则表达式");
    

9.1.2 函数

test(str) :判断指定字符串是否符合规则,返回 true或 false

9.2 正则表达式

从上面创建正则对象的格式中可以看出不管哪种方式都需要正则表达式,那么什么是正则表达式呢?

正则表达式定义了字符串组成的规则。也就是判断指定的字符串是否符合指定的规则,如果符合返回true,如果不符合返回false。

正则表达式是和语言无关的。很多语言都支持正则表达式,Java语言也支持,只不过正则表达式在不同的语言中的使用方式不同,js 中需要使用正则对象来使用正则表达式。

正则表达式常用的规则如下:

  • ^:表示开始

  • $:表示结束

  • [ ]:代表某个范围内的单个字符,比如: [0-9] 单个数字字符

  • .:代表任意单个字符,除了换行和行结束符

  • \w:代表单词字符:字母、数字、下划线(),相当于 [A-Za-z0-9]

  • \d:代表数字字符: 相当于 [0-9]

量词:

  • +:至少一个

  • *:零个或多个

  • ?:零个或一个

  • {x}:x个

  • {m,}:至少m个

  • {m,n}:至少m个,最多n个

代码演示:

// 规则:单词字符,6~12
//1,创建正则对象,对正则表达式进行封装
var reg = /^\w{6,12}$/;

var str = "abcccc";
//2,判断 str 字符串是否符合 reg 封装的正则表达式的规则
var flag = reg.test(str);
alert(flag);

9.3 改进表单校验案例

表单校验案例中的规则是我们进行一系列的判断来实现的,现在学习了正则对象后,就可以使用正则对象来改进这个案例。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>欢迎注册</title>
    <link href="../css/register.css" rel="stylesheet">
</head>
<body>

<div class="form-div">
    <div class="reg-content">
        <h1>欢迎注册</h1>
        <span>已有帐号?</span> <a href="#">登录</a>
    </div>
    <form id="reg-form" action="#" method="get">

        <table>

            <tr>
                <td>用户名</td>
                <td class="inputs">
                    <input name="username" type="text" id="username">
                    <br>
                    <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>
                </td>

            </tr>

            <tr>
                <td>密码</td>
                <td class="inputs">
                    <input name="password" type="password" id="password">
                    <br>
                    <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
                </td>
            </tr>


            <tr>
                <td>手机号</td>
                <td class="inputs"><input name="tel" type="text" id="tel">
                    <br>
                    <span id="tel_err" class="err_msg" style="display: none">手机号格式有误</span>
                </td>
            </tr>

        </table>

        <div class="buttons">
            <input value="注 册" type="submit" id="reg_btn">
        </div>
        <br class="clear">
    </form>

</div>


<script>

    //1. 验证用户名是否符合规则
    //1.1 获取用户名的输入框
    var usernameInput = document.getElementById("username");

    //1.2 绑定onblur事件 失去焦点
    usernameInput.onblur = checkUsername;

    function checkUsername() {
        //1.3 获取用户输入的用户名
        var username = usernameInput.value.trim();

        //1.4 判断用户名是否符合规则:长度 6~12,单词字符组成
        var reg = /^\w{6,12}$/;
        var flag = reg.test(username);

        //var flag = username.length >= 6 && username.length <= 12;
        if (flag) {
            //符合规则
            document.getElementById("username_err").style.display = 'none';
        } else {
            //不合符规则
            document.getElementById("username_err").style.display = '';
        }
        return flag;
    }

    //1. 验证密码是否符合规则
    //1.1 获取密码的输入框
    var passwordInput = document.getElementById("password");

    //1.2 绑定onblur事件 失去焦点
    passwordInput.onblur = checkPassword;

    function checkPassword() {
        //1.3 获取用户输入的密码
        var password = passwordInput.value.trim();

        //1.4 判断密码是否符合规则:长度 6~12
        var reg = /^\w{6,12}$/;
        var flag = reg.test(password);

        //var flag = password.length >= 6 && password.length <= 12;
        if (flag) {
            //符合规则
            document.getElementById("password_err").style.display = 'none';
        } else {
            //不合符规则
            document.getElementById("password_err").style.display = '';
        }
        return flag;
    }

    //1. 验证手机号是否符合规则
    //1.1 获取手机号的输入框
    var telInput = document.getElementById("tel");

    //1.2 绑定onblur事件 失去焦点
    telInput.onblur = checkTel;

    function checkTel() {
        //1.3 获取用户输入的手机号
        var tel = telInput.value.trim();

        //1.4 判断手机号是否符合规则:长度 11,数字组成,第一位是1
        //var flag = tel.length == 11;
        var reg = /^[1]\d{10}$/;
        var flag = reg.test(tel);
        if (flag) {
            //符合规则
            document.getElementById("tel_err").style.display = 'none';
        } else {
            //不合符规则
            document.getElementById("tel_err").style.display = '';
        
        return flag;
    }

    //1. 获取表单对象
    var regForm = document.getElementById("reg-form");

    //2. 绑定onsubmit 事件
    regForm.onsubmit = function () {
        //挨个判断每一个表单项是否都符合要求,如果有一个不合符,则返回false

        var flag = checkUsername() && checkPassword() && checkTel();

        return flag;
    }
</script>
</body>
</html>

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

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

相关文章

人群密度技术人流量检测

1.贡献 本文的task还是在synthetic的data上训练&#xff0c;在real data上测试&#xff0c;并且之前的方法主要是先将synthetic的data风格转化成real的风格&#xff0c;再训练&#xff0c;来减轻domain的gap带来的问题&#xff0c;但是之前的这样做存在几个问题&#xff0c;第…

基于HTML的图书管理系统(源码+数据库)

一、相关技术介绍 1.HTML 5技术 HTML5作为构造Web内容的语言描述方式和互联网的规范&#xff0c;为网站设计提供了一种全新的思路。将HTML5引入到网站开发领域中&#xff0c;以提高用户体验度&#xff0c;使网站更具有吸引力&#xff0c;增强搜索引擎收录以及增加浏览次数等功…

B063-基础环境-后端环境 Lombok Restful postman swagger

目录 项目介绍需求分析项目架构项目技术架构前后端分离前后端分离开发模式前后端分离优缺点 后端项目搭建-部门模块项目端口规划创建SpringBoot项目流程整合SSM引用属性传值 LombokRestful风格Postman接口测试swagger接口规范其他 项目介绍 本项目是一个&#xff08;Online To…

​2023年湖北黄冈安管三类人员个人可以报名吗 ?报名时间是什么时候?

2023年湖北黄冈安管三类人员个人可以报名吗 &#xff1f;报名时间是什么时候&#xff1f; 个人不可以报名。安管三类人员包括建筑施工企业主要负责人、建筑施工企业项目负责人以及建筑施工企业专职安全生产管理人员&#xff0c;他们是对本企业安全生产工作负责的三类人员&#…

【LInux】简单进度条程序的编写

在进行进度条的程序的编写之前&#xff0c;还有几个问题需要解决。 第一个问题&#xff0c;先来看两段代码&#xff1a; 对比上面两段代码只有一个\n的区别。 左边的代码很简单&#xff0c;就是先打印&#xff0c;然后停顿 3 秒&#xff0c;程序退出。 主要问题是&#xff0c;…

ARM通讯接口

ARM要和传感器等芯片进行通信,需要物理线路.用于传送数据的物理线路,称为总线.根据传送的数据速度 物理线路的多少,有很多不同的总线.最常见的是 串口总线 SPI总线 I2C总线 USB总线等. 我们简单的介绍一下串口和i2c接口. 串口,UART,有两根线,分别为TX RX.TX用于发送本地数据…

SAP从入门到放弃系列之生产订单报工

文章目录导航 一、概述二、订单确认的方式2.1、订单抬头维度确认2.2、工订单序维度确认 三、确认的类型四、工序确认的屏幕界面4.1 设置屏幕格式4.2 订单类型维护确认参数 五、确认产生的数据 一、概述 生产订单下达后&#xff0c;订单的确认是对车间生产进度的体现&#xff0…

三、传播引擎

文章目录 1、约束传播问题的数学表示2、传播引擎3、幂等&#xff08;idempotent&#xff09;4、调用事件5、已解决的传播器6、引擎优化THE END 1、约束传播问题的数学表示 \qquad 给定 变量集合 { X i } \{X_i\} {Xi​}和其对应的值域 D ( X i ) D(X_i) D(Xi​)&#xff1b;给定…

gnuplot画图

首先,安装gnuplot: sudo apt-get install gnuplot 接着,输入gnuplot,进入gnuplot工作模式: gnuplot 输入下述命令,打开对应的位姿文件,使用XX列数据进行画图: plot poses.txt using 2:3输入下述命令,打开两个不同的位姿文件,同时进行绘图. plot poses.txt using 2:3 with l…

Mac上,flv怎么转换成mp4格式

Mac电脑 怎么把mov格式的视频转换mp4&#xff1f;在进行视频格式转换之前&#xff0c;让我们先了解一下为什么需要将MOV格式转换为MP4格式。mov是由美国Apple公司开发的一种视频格式&#xff0c;主要由Apple QuickTime用于存储视频文件。使用苹果手机的用户可以发现&#xff0c…

AIDL Binder机制和原理

新的Android 通信规范中&#xff0c;C层使用AIDL替代HIDL实现Framework和Vendor层之间调用解耦。 我们知道&#xff0c;Binder之间通信&#xff0c;需要一个服务端和一个客户端. 【Binder】 Binder架构分成四层&#xff0c;应用层&#xff0c;Framework层&#xff0c;Native…

4. 注册machine

数字mic系列&#xff0c;注册machine dts配置如下 digital_mic: digital-mic {status "okay";compatible "simple-audio-card";simple-audio-card,format "i2s";simple-audio-card,mclk-fs <256>;simple-audio-card,name "digit…

你知道2个KT6368A的蓝牙芯片模块如何配对_以及数据传输吗

目录 一、简介你知道2个KT6368A的蓝牙芯片模块如何配对_以及数据传输吗&#xff1f;KT6368A的蓝牙模块之间是可以建立连接&#xff0c;并且全双工数据透传的但是有几点注意事项&#xff0c;一定要选择KT6368A的主机版本&#xff0c;和从机版本&#xff0c;如下图&#xff1a; …

Spring Boot 中的分布式锁

Spring Boot 中的分布式锁 在分布式系统中&#xff0c;多个应用程序可能需要同时对同一个资源进行修改。为了避免数据的不一致性和冲突等问题&#xff0c;我们需要对这些资源进行加锁操作。在本文中&#xff0c;我们将介绍 Spring Boot 中的分布式锁是什么&#xff0c;原理是什…

OpenCV键盘监听函数 cv2::waitKey( delay )

1、函数原型&#xff1a;cv::waitKey( delay ) delay&#xff1a;等待时间(毫秒) 作用&#xff1a;通过 waitKey() 可以获取键盘输入2、示例&#xff1a; 实现键盘输入1&#xff0c;将图像转为灰度图输出&#xff1b; 键盘输入2&#xff0c;将图像转为HSV图输出&#xff1b; …

element ui - el-button 重新渲染后disabled属性失效

element ui - el-button重新渲染后disabled属性失效 场景解决方法 场景 有两组不同的按钮&#xff1a; 不在灰度发布状态下的 disabled 的灰色按钮&#xff1b;灰度发布状态下的 可点击按钮&#xff1b; 发现当再次渲染 灰色按钮 时&#xff0c;disabled 属性失效。 解决方…

7.6 【Linux】文件系统的特殊观察与操作

7.6.1 磁盘空间之浪费问题 从上面的特殊字体部分&#xff0c;那就是每个文件所使用掉 block 的容量&#xff01;举例来说&#xff0c;那个 crontab 虽然仅有 451Bytes &#xff0c; 不过他却占用了整个 block &#xff08;每个 block 为 4K&#xff09;&#xff0c;所以将所有的…

电子企业MES管理系统如何加强生产现场管控

随着数字化时代的到来&#xff0c;中小型电子企业面临着提升生产现场管控的挑战。为了应对这一挑战&#xff0c;许多企业开始采用MES生产管理系统。本文将探讨MES生产管理系统如何帮助电子企业加强生产现场管控&#xff0c;提高生产效率和质量。 在电子企业的生产现场&#xf…

MCU是否会从ADAS域控制器消失

摘要&#xff1a; ADAS架构及MCU功能概览、未来ADAS架构的两种方案、MCU是否从ADAS域消失的一点思考 ADAS的装机量和渗透率再提升&#xff0c;尤其L2及L2级&#xff1b;那么随着ADAS域控制器主控芯片的增强&#xff0c;未来&#xff0c;MCU是否还会存在&#xff1f; 转自佐思汽…

SSM之MyBatis

MyBatis学习笔记 一、入门二、XML配置1、configuration&#xff08;配置&#xff09;2、properties&#xff08;属性&#xff09;3、settings&#xff08;设置&#xff09;4、typeAliases&#xff08;类型别名&#xff09;5、typeHandlers&#xff08;类型处理器&#xff09;6、…