2. JQeury实现方式
1. $.ajax()
* 语法:$.ajax({键值对});
//使用$.ajax()发送异步请求
$.ajax({
url:"ajaxServlet1111" , // 请求路径
type:"POST" , //请求方式
//data: "username=jack&age=23",//请求参数
data:{"username":"jack","age":23},
success:function (data) {
alert(data);
},//响应成功后的回调函数
error:function () {
alert("出错啦...")
},//表示如果请求响应出现错误,会执行的回调函数
dataType:"text"//设置接受到的响应数据的格式
});
2. $.get():发送get请求
* 语法:$.get(url, [data], [callback], [type])
* 参数:
* url:请求路径
* data:请求参数
* callback:回调函数
* type:响应结果的类型
3. $.post():发送post请求
* 语法:$.post(url, [data], [callback], [type])
* 参数:
* url:请求路径
* data:请求参数
* callback:回调函数
* type:响应结果的类型
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/jquery-3.3.1.min.js"></script>
<script>
function fun(){
//使用$.ajax发送异步请求
//function 是回调函数接受服务器响应回来的data数据
$.get("ajaxServlet",{username:"rose"},function (data){
alert(data);
},"text");
}
</script>
</head>
<body>
<input type="button" value="发送异步请求" onclick="fun();">
<input>
</body>
</html>
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
System.out.println(username);
response.getWriter().write("hello"+username);
}
}
ctrl +alt+ L 是IDEA 中格式化的快捷键。
json获取数据的方式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//1.基本定义格式
var person = {"name": "张三", age: 23, 'gender': true};
var ps =[{"name": "张三", age: 23, 'gender': true},
{"name": "李四", age: 23, 'gender': true},
{"name": "王五", age: 23, 'gender': true}];
/* for(var key in person){
//这种方式不可以,因为相当于person."name" key 是带有引号的字符串。
// alert(key +":"+person.key)
alert(key +":"+person[key])
}*/
for (var i = 0; i < ps.length; i++) {
var p =ps[i];
for (var key in p) {
alert(key +":"+ p[key]);
}
}
</script>
</head>
<body>
</body>
</html>
-
JSON数据和Java对象的相互转换
* JSON解析器: * 常见的解析器:Jsonlib,Gson,fastjson,jackson 1. JSON转为Java对象 1. 导入jackson的相关jar包 2. 创建Jackson核心对象 ObjectMapper 3. 调用ObjectMapper的相关方法进行转换 1. readValue(json字符串数据,Class) 2. Java对象转换JSON 1. 使用步骤: 1. 导入jackson的相关jar包 2. 创建Jackson核心对象 ObjectMapper 3. 调用ObjectMapper的相关方法进行转换 1. 转换方法: * writeValue(参数1,obj): 参数1: File:将obj对象转换为JSON字符串,并保存到指定的文件中 Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中 OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中 * writeValueAsString(obj):将对象转为json字符串 2. 注解: 1. @JsonIgnore:排除属性。 2. @JsonFormat:属性值得格式化 * @JsonFormat(pattern = "yyyy-MM-dd") 3. 复杂java对象转换 1. List:数组 2. Map:对象格式一致
案例:
package cn.itcast.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
public class Person {
private String name;
private int age;
private String gender;
//注意pattern 的大小写。
@JsonFormat(pattern = "yyyy-MM-dd")
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
private Date birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
------------------------------------------------------
package cn.itcast.test;
import cn.itcast.domain.Person;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;
import java.io.File;
import java.io.FileWriter;
import java.util.Date;
public class JacksonTest {
@Test
public void test1() throws Exception {
Person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
//java对象转化为JSON
//创建JackSon核心对象 ObjectMapper
ObjectMapper mapper = new ObjectMapper();
//writeValueAsString(obj):将对象转化为json字符串
String json = mapper.writeValueAsString(p);
System.out.println(json);
//writeValue
// 参数1:File :将obj对象转换为JSON 字符串,并保存在指定的文件中
// 参数2:Write :将obj对象转换为JSON 字符串,并将JSON数据填充到字符输出流中
// 参数3:OutputStream :将obj对象转换为JSON 字符串,并将JSON数据填充到字节输出流中
mapper.writeValue(new File("f://a.txt"),p);
mapper.writeValue(new FileWriter("f://b.txt"),p);
}
@Test
public void test2() throws Exception {
Person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
p.setBirthday(new Date());
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(p);
System.out.println(json);
}
}
@Test
public void test3() throws Exception {
Person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
Person p2 = new Person();
p2.setName("张三");
p2.setAge(23);
p2.setGender("男");
List<Person> list = new ArrayList<Person>();
list.add(p);
list.add(p2);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(list);
System.out.println(json);
}
@Test
public void test4() throws JsonProcessingException {
Person p = new Person();
Map<String,Object> map = new HashMap<String, Object>();
map.put("name","张三");
map.put("age",23);
map.put("gender","男");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(map);
System.out.println(json);
}
@Test
public void test5() throws IOException {
String json = "{\"gender\":\"男\",\"name\":\"张三\",\"age\":23}";
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
System.out.println(person);
}