1
@Controller

@Controller负责处理前端控制器(DispatcherServlet )发过来的请求,经过业务逻辑层处理之后封装层一个model,并将其返回给view进行展示

1
@RestController

@RestController = @Controller + @ResponseBody(@ResponseBody 注解是将返回的数据结构转换为 JSON 格式)

1
@RequestMapping(value="/hello",method={RequestMethod.GET})

@RequestMapping用来处理请求地址映射

1
@RequestParam(value="username",required=true,defaultValue=null)

@RequestParam获取请求参数,可以用在对象属性名与方法参数名不一样的场景中

1
@PathVariable

@PathVariable注解用来获取 URL 参数,用于支持Restful风格的 URL,请求的URL也需要相应地有所改变。

例如:GetMapping(“user/{id}”)

1
@ResponseBody

@ResponseBody要写在方法名上。如果加上@ResponseBody注解,就不会走视图解析器,不会返回页面,返回的是json数据(所以你应该return字符串,而不是URL地址)。如果不加@ResponseBody,就走视图解析器,返回页面

1
@RequestBody

@RequestBody用于接收前端传来的实体,要写在方法的参数前,只能发送POST请求。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!--前端JSON和js对象之间的转换-->
<script type="text/javascript">
//编写一个js的对象
var user = {
name:"秦疆",
age:3,
sex:"男"
};
//将js对象转换成json字符串
var str = JSON.stringify(user);
console.log(str);

//将json字符串转换为js对象
var user2 = JSON.parse(str);
console.log(user2.age,user2.name,user2.sex);

</script>

统一解决JSON在SpringMVC中的乱码问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
<property name="failOnEmptyBeans" value="false"/>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

fastJSON部分方法的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class FastJsonDemo {
public static void main(String[] args) {
//创建一个对象
User user1 = new User("秦疆1号", 3, "男");
User user2 = new User("秦疆2号", 3, "男");
User user3 = new User("秦疆3号", 3, "男");
User user4 = new User("秦疆4号", 3, "男");
List<User> list = new ArrayList<User>();
list.add(user1);
list.add(user2);
list.add(user3);
list.add(user4);

System.out.println("*******Java对象 转 JSON字符串*******");
String str1 = JSON.toJSONString(list);//返回数组的JSON字符串
System.out.println("JSON.toJSONString(list)==>"+str1);
String str2 = JSON.toJSONString(user1);//返回对象的JSON字符串
System.out.println("JSON.toJSONString(user1)==>"+str2);

System.out.println("\n****** JSON字符串 转 Java对象*******");
User jp_user1=JSON.parseObject(str2,User.class);//把User的JSON字符串转换成Java对象
System.out.println("JSON.parseObject(str2,User.class)==>"+jp_user1);

System.out.println("\n****** Java对象 转 JSON对象 ******");
JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2);//把一个User对象转换成JSON对象
System.out.println("(JSONObject) JSON.toJSON(user2)==>"+jsonObject1.getString("name"));//获取JSON对象某个属性的值

System.out.println("\n****** JSON对象 转 Java对象 ******");
User to_java_user = JSON.toJavaObject(jsonObject1, User.class);//将一个JSON对象转成一个指定的java对象
System.out.println("JSON.toJavaObject(jsonObject1, User.class)==>"+to_java_user);
}
}

输入结果:

img

lombok依赖要引入的几个必要注解:

1
2
3
4
5
6
@Data
@AllArgsConstructor
@NoArgsConstructor
public class person(){

}