1 什么是ajax
允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.
2 使用ajax----jquery
(1)引入jquery 插件或者依赖
<script typec="text/javascript" src="js/jquery-3.5.1.js"/>
依赖:不会使用maven导包的话自行百度,下载 jackson 的包导入项目
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.3</version>
</dependency>
(2)使用jquery--ajax.
$.get(url,[data],[callback],[type])
3 ajax响应的数据类型有那些?
$.ajax方法响应数据类型有:xml、html、script、json、jsonp、text
本质上原生ajax响应数据格式只有2种:xml和text,分别对应xhr.responseText和xhr.responseXML
.参考代码,有详细注释 就不废话了
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置content-type消息头,告诉浏览器, 服务器返回的数据类型。
//我这里是返回 json 类型
response.setContentType("application/json;charset=utf-8");
//通过response对象获得输出流。
PrintWriter out = response.getWriter();
//构建 对象 转 json 类
ObjectMapper mapper = new ObjectMapper();
/**
* 这里是我返回给前端的对象,其他类型也可以
*/
Map<String, List<String>> list = new HashMap<String, List<String>>();
//把 对象转为 json 字符串
String json = mapper.writeValueAsString(list);
//把数据写到response对象上。
// 注: Servlet容器会将response对象上存放的 数据取出来
//,打一个包(响应数据包), 然后发送给浏览器。
out.println(json);
//如果没有调用out.close,则容器会自动 关闭out。
out.close();
}
}