SpringMVC(20) —— Ajax初体验


1.什么是Ajax

  • AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)
  • AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术
  • Ajax 不是一种新的编程语言而是一种用于创建更好更快以及交互性更强的Web应用程序的技术
  • 在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来,Google Suggest能够自动帮你完成搜索单词
  • Google Suggest 使用 AJAX 创造出动态性极强的 web 界面:当您在谷歌的搜索框输入关键字时,JavaScript 会把这些字符发送到服务器,然后服务器会返回一个搜索建议的列表。
  • 就和国内百度的搜索框一样:
    在这里插入图片描述
  • 传统的网页(即不用ajax技术的网页),想要更新内容或者提交一个表单,都需要重新加载整个网页
  • 使用ajax技术的网页,通过在后台服务器进行少量的数据交换,就可以实现异步局部更新
  • 使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面

2.Ajax可以做什么

  • 注册时,输入用户名自动检测用户是否已经存在
  • 登陆时,提示用户名密码错误
  • 删除数据行时,将ID发送到后台,后台在数据库中删除,数据库删除成功后,在页面DOM中将数据行也删除

3.回顾springMVC

  • 创建新的子model:SpringMVC-06-Ajax,并转为web项目
  • 配置web.xml中的dispatcherservlet和乱码过滤器
  • 创建applicationContext.xml —— 注解驱动、静态资源过滤、注解注入扫描和视图解析器
  • 创建JSP文件夹
  • 写一个controller测试环境
    在这里插入图片描述

4.jQuery.ajax

  • 纯JS原生实现Ajax我们不去讲解这里,直接使用jquery提供的,方便学习和使用,避免重复造轮子,有兴趣的同学可以去了解下JS原生XMLHttpRequest
  • Ajax的核心是XMLHttpRequest对象(XHR),XHR为向服务器发送请求和解析服务器响应提供了接口,能够以异步方式从服务器获取新数据
  • jQuery 提供多个与 AJAX 有关的方法
  • 通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON – 同时你能够把这些外部数据直接载入网页的被选元素中
  • jQuery 不是生产者,而是大自然搬运工,它的本质就是别人写好的许多可以直接使用的js方法,所以使用jQuery.ajax本质上还是在使用js实现ajax,但是使用jQuery 我们不用自己去写实现复杂功能的js函数,而是直接调用即可
  • jQuery Ajax本质就是 XMLHttpRequest,对他进行了封装,方便调用
    jQuery.ajax(...)
    	部分参数:
    		url:请求地址
    		type:请求方式,GET、POST(1.9.0之后用method)
    		headers:请求头
    		data:要发送的数据
    		contentType:即将发送信息至服务器的内容编码类型(默认: "application/x-wwwform-
    		urlencoded; charset=UTF-8")
    		async:是否异步
    		timeout:设置请求超时时间(毫秒)
    		beforeSend:发送请求前执行的函数(全局)
    		complete:完成之后执行的回调函数(全局)
    		success:成功之后执行的回调函数(全局)
    		error:失败之后执行的回调函数(全局)
    		accepts:通过请求头发送给服务器,告诉服务器当前客户端课接受的数据类型
    		dataType:将服务器端返回的数据转换成指定类型
    		"xml": 将服务器端返回的内容转换成xml格式
    		"text": 将服务器端返回的内容转换成普通文本格式
    		"html": 将服务器端返回的内容转换成普通文本格式,在插入DOM中时,如果包含
    		JavaScript标签,则会尝试去执行。
    		"script": 尝试将返回值当作JavaScript去执行,然后再将服务器端返回的内容转换成
    		普通文本格式
    		"json": 将服务器端返回的内容转换成相应的JavaScript对象
    		"jsonp": JSONP 格式使用 JSONP 形式调用函数时,如 "myurl?callback=?"
    		jQuery 将自动替换 ? 为正确的函数名,以执行回调函数
    

5.使用jQuery.ajax

    我们可以引入CDN或者直接下载jQuery官方提供的文件,然后直接拷贝到我们的web文件夹下的statics文件夹中(没有就创建一个)
     jQuery官网.
在这里插入图片描述
在这里插入图片描述
    然后在视图中使用script标签的src属性导入该文件

 <script src="${pageContext.request.contextPath}/statics/js/jquery-3.5.1.js"></script>
  • 注意:去spring容器中开启静态资源过滤
    在这里插入图片描述

6.需求

    当input标签失去焦点的时候向后台传输数据,实现页面的异步刷新

  • 页面
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
        <%--导入jquery--%>
        <script src="${pageContext.request.contextPath}/statics/js/jquery-3.5.1.js"></script>
        <script>
          function test(){
            $.post({
              url:"${pageContext.request.contextPath}/t1",
              data:{"name":$("#txtName").val()},
              success:function (data,status){
                alert(data);
                console.log(status);
              }
            });
          }
    
        </script>
      </head>
      <body>
      用户名:<input type="text" id="txtName" onblur="test()">
      </body>
    </html>
    

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • controller
        @RequestMapping("/t1")
        public void test01(String name, HttpServletResponse response) throws IOException {
            System.out.println("test01==>"+name);
            if ("thhh".equals(name)){
                response.getWriter().print("true");
            }else {
                response.getWriter().print("false");
            }
        }
    

在这里插入图片描述

  • 测试
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    测试完成!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值