下面,我们针对上节课的代码进行大致的分析,了解一下如何快速的搭建起一个可以为我们提供服务的网络接口。
1、从类的最上方开始看
@Controller
@RequestMapping("/tc")
public class TestController {
}
@Controller注解用来用于标记当前的的类就是一个SpringMVC Controller 对象,程序启动后就会对标记@Controller的类的方法进行扫描,查看当前的controller实现了什么方法,提供了什么接口。
@RequestMapping 用来标记当前的类可以进行请求的地址映射和处理,后面的括号内的字符串用来表示客户端通过哪个地址可以访问到这个类内的方法,本例写的是"/tc",也就相当于客户端通过http://localhost:8080/tc访问到当前类,当然也可以直接写("/")后面不写其他内容,但是这样不方便我们针对不同的业务进行区分。
2、接下来看这个类内的方法
@RequestMapping("/test")
@ResponseBody
public Object test(HttpServletRequest req){
Map result = new HashMap();
System.out.println(req.getParameter("name"));
System.out.println(req.getParameter("age"));
System.out.println(req.getParameter("sex"));
result.put("status","success");
return result;
}
@RequestMapping 当这个注解出现在方法上的话,那么就表明他是对这个方法的地址进行的映射,根据上面说的,这里如果我要访问TestController内的test方法的话,那么在方法上添加这个注解并添加对应的地址映射,访问这个方法的接口就是:http://localhost:8080/tc/test
@ResponseBody 这个是对返回数据的一个注解,这里返回现在服务器常用的json,所以添加@ResponseBody 注解用于表示返回的数据是json,当然如果什么都不填写,表示返回对应的网页,例如:
@RequestMapping("/test")
public Object test(HttpServletRequest req){
return "index";
}
这样的话,一般表示返回index.html这个网页,其他的返回数据暂不做介绍。
需要注意的是这里不仅仅只是可以返回一个Map,也可以返回对应的对象,下面我们创建一个对象User,并添加如下属性和构造方法:
public class User {
private String name;
private int age;
private boolean sex;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
", sex=" + sex +
'}';
}
public User(String name, int age, boolean sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
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 boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
}
好了,现在,我们把原来返回的Map给换成一个User对象,看下会是什么结果,代码如下:
@Controller
@RequestMapping("/tc")
public class TestController {
@RequestMapping("/test")
@ResponseBody
public Object test(HttpServletRequest req){
User user = new User("jasson",23,true);
return user;
}
}
此时,我们打开浏览器,访问如下地址:http://localhost:8080/tc/test,我们发现,直接返回一了这个对象的json字符串(这里我的chrome安装了JsonFormatter,会对JSON进行格式化)
也就是说,在方法上面添加@ResponseBody的注解后,返回的Object会被直接转换为Json格式的字符串。本节只做简单的讲解和介绍,后面会对常用的内容进行详细分析。
本系列教程花费本人大量的时间,希望大家汲取知识的同时,不吝在下方点击"赞赏支持"对本人的付出给予肯定,谢谢!