同步:浏览器会自动使用响应体刷新整体页面
缺点:用户体验性极差
优点:非常易于开发。(自动刷新)
异步:浏览器根据响应体手动刷新局部页面
优点: 用户体验性好。
缺点:不容易进行开发、维护
异步的手动刷新,是程序员 写JavaScript代码或者写jQuery代码才可以进行刷新局部页面操作。
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)可以使网页实现异步更新,就是不重新加载整个网页的情况下,对网页的某部分进行更新(局部刷新)。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。
AJAX = 异步 JavaScript和XML,异步是一种新的思想,整合之前的多种技术,用于创建快速交互式网页应用的网页开发技术。
jQuery-ajax入门及API
必须导入jQuery依赖js文件。
$.post(url,data,callback,type); //post请求
$.get(url,data,callback,type); //get请求
参数:
url 需要异步请求的路径/需要异步访问的路径 js的字符串 【必须有】
data 发送请求时,带的参数列表
仅定义方式不同,效果一样
写法一:{key1:”value1”,key2:”value2”,key3:”value3”} 【建议】
写法二:{“key1”:”value1”,”key2”:”value2”,”key3”:”value3”}
不管key和value是什么类型,最终提交参数列表都是string
callback 回调函数。服务器成功响应,并且浏览器成功到服务器的响应。
状态码:200
某个操作执行成功后,再回来执行的函数
function(data){
//data就是整个响应体。是一个js对象
//javascript jquery代码
}
若服务器向传递数据/结果给浏览器,写响应体即可。
响应体乱码解决:
同步方式:response.setContentType
异步方式:response.setCharacterEncoding
type 设置响应体的内容格式。默认是一个text字符串。
xml, html, script, json, text, _default
只要请求头中有xmlhttpRequest,就是一个异步请求
代码实现
- 修改register.jsp 目的:为了能够发送异步请求,传递用户名参数
- 修改servlet。 目的:为了修改响应体乱码代码
- 修改register.jsp 目的:为了异步刷新局部页面
ajax
所有的异步请求,响应接收 都依赖于 XMLHttpRequest对象。
异步填充/异步查询
流程分析
案例代码实现
- 创建index.jsp
- 创建Servlet
- 创建Service
- 创建dao
通常异步请求、响应都会使用JSON格式作为数据。(JSON(JavaScript Object Notation)JavaScript对象表示法,是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,就是说不同的编程语言JSON数据是一致的。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。)
JSONObject 负责转javaBean和Map
JSONArray 负责转ArrayList
简单回显
- 修改Servlet 目的:把json数据传递给浏览器
- 修改index.jsp 目的:把结果展示给用户 【难点】