老规矩–妹妹镇楼:



java 实现 ajax 下载文件 java的ajax_java 实现 ajax 下载文件


一. AJAX

(一) 概述

       Asynchronous JavaScript And XML,异步的JavaScript和XML。所谓的异步指的是客户端不需要等待服务器端的响应,在服务器daun处理请求的过程中,客户端可以进行其他的操作。

(二) 优势

       Ajax是一种在无需重新加载整个网页的情况下,更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。

(三) 实现方式

1. JQuery实现
(1)$.ajax()

       通过$.ajax()方法发送异步请求,在ajax方法的参数中传入一些参数,如请求路径,请求方式,请求参数,响应成功后的回调函数…

$.ajax({
	url:”ajaxServlet”,		//请求路径
	type:”POST”,				//请求方式
	data:{“username”:”jack”, “age”:23},//请求参数
	success:function(data){
		alert(data);
	}						//响应成功后的回调函数
	error:function(){
		alert(“error”);	
	}						//请求响应出现错误的回调函数
	datatype:”text”			//响应的数据类型
})



(2)$.get()

       用于发送get请求

如:

$.get(
	“ajaxServlet”, 
	{username:”rose”}, 
	function(data){
		alert(data);
	}. 
	“text”
);



(3)$.post

       发送POST请求,参数与$.get方法一样的。



二. JSON

(一) 概述

       JavaScript Object Notation,JavaScript对象表示法。JSON将数据打包成对象进行传输,多用于存储和交换文本信息,进行数据的传输。语法类似于XML,但是比XML更小,更快,更易解析。

(二) 语法

1. 基本语法

       (1) 数据在名称/值对中:json数据是由键值对构成的。

       键用引号(单双)引起来,也可以不用引号;

       值可以嵌套json对象以及json对象数组

       (2) 数据由逗号分隔,多个键值对由逗号分隔。

       (3) 使用花括号将json对象括起来。

       (4) 方括号保存json对象数组

2. 获取json对象数据
(1) json对象.键名

       这个键名不用带引号。

persons.name



(2) json对象[“键名”]
person[“name”]



(三) json数据和java对象的相互转换

1. Java对象转换为json数据

       (1) 导入json的解析器,如Jsonlib, Gson, fastjson, Jackson.这里我们导入jackson的Jar包

       (2) 创建Jackson的核心对象,ObjectMapper

ObjectMapper mapper = new ObjectMapper();

       (3) 调用ObjectMapper的相关方法进行转换

第一个转换方法:

writeValue(参数1, obj)

参数1:
       File, 将obj对象转换为json字符串,并保存到指定的File文件中。

       Writer,将obj对象转换为json字符串,并将json数据填充到字符输出流中。

       OutputStream,将obj对象转换为json字符串,并将json数据填充到字节输出流中。

mapper.writeValue(new File(“./a,txt”), p);
mapper.writeValue(new FileWriter(“./b.txt”), p);



第二个转换方法:

writeValueAsString(obj)

将obj对象转换为json字符串

String json = mapper.writeValueAsString(p)



(4) 注解的使用

       @JsonIgnore 用于忽略某些键值对,将该注解放置于Java对象的属性定义之上,那么转换成json数据时,就会自动忽略该属性:

@JsonIgnore
private String name;



       @JsonFormat, 用于调整属性的格式:

@JsonFormat(pattern=“yyyy-MM-dd”)
private Date birthday;



(5) list和map转换为json

       list转换为json数据的格式为json对象数组。

       map转换为json数据的格式为json对象。

2. json数据转换为Java对象

       (1) 导入jackson解析器的jar包

       (2) 创建jackson的核心对象 ObjectMapper

       (3) 调用ObjectMapper的如下方法:

       readValue(json字符串数据,Java对象的Class)

String json = “{\”gender\”:\”男\”, \”name\’:\”张三\”}”;
ObjectMapper mapper = readValue(json, Person.class);