Spring MVC 简介
什么是Spring MVC
Spring MVC 全名是 Spring Web MVC,简称 Spring MVC或者 Spring Web.
Spring MVC 是基于Servlet API的web框架,从一开始Spring框架是包含Spring MVC部分,也就是说Spring MVC是Spring 框架的一部分。
了解 MVC
MVC的英文全称是 Model View Controller,它是软件工程的软件架构模式,它把软件系统分为视图,模型,控制器三个部分。
model :程序逻辑部分
controller:前后端交互部分
view: 页面显示部分
MVC 和Spring MVC的联系
MVC只是软件架构模式,是一种思想,而Spring MVC这是MVC的一种具体的实现。
如何创建一个Spring Web项目
创建Spring Web项目的创建方式有很多种,这里介绍通过Spring Boot来创建一个Spring Web项目
通过Spring Boot来创建Spring Web 项目是一个非常简单的是,我们只需要在添加依赖的步骤添加一个Spring Web依赖就可以了
在Spring Web 项目中,如何连接Http请求
我们在学习Serlvet API的时候,是通过@WebServlet()来配置路由的。
而我们在使用Spring MVC的时候,则是通过@RequestMapping()这个注解来配置路由。
@RequestMapping()注解的作用:只有一个,就是用来配置路由,用来连接http请求
@RequestMapping()注解可以放在类前,也可以放在方法前。放在类前表示一级路径,放在方法前表示二级路径
有了@RequestMapping()注解还不够,还要加一个类注解@Controller,让Spring容器能够加载该类。
@RequestMapping("/user")
@Controller
public class UserController {
@RequestMapping("/m")
public String user() {
return "ok";
}
}
这样写还是有一些问题,这样写默认返回的并不是ok这个信息,而是一个视图,根我们想的不太一样。如何返回信息能?
使用@ResponseBody可以解决这个问题
@RequestMapping("/user")
@Controller
@ResponseBody
public class UserController {
@RequestMapping("/m")
public String user() {
return "ok";
}
}
@ResponseBody注解的用法:
@ResponseBody注解可以作用在类前,也可以作用在方法前
@ResponseBody注解作用在类前表示该类里面设置的路由返回的都是数据不是视图
@ResponseBody注解作用在方法前表示只有该路由返回的是数据不是视图
如果,我们觉得写@Controller,@ResponseBody这两个注解太麻烦了,这里还有一个组合注解包含了这两个部分:@RestController注解
@RestController
public class UserController {
@PostMapping("/user")
public String user() {
return "ok";
}
}
@Controller注解可以用其他类注解代替吗
不能,虽然五大类注解都可把对象交给Spring容器进行管理,但是,五大类注解不仅仅只有这个功能,他们分工明确,@Controller是用来进行前后端交互的,其他类注解是无法替代。
连接其他类型的请求
@RequestMapping()注解比较强大,默认情况下,get和post类型的请求都可以连接
【连接get请求】
//方法一
@RequestMapping("/user")
//方法二
@RequestMapping(value = "/user",method = RequestMethod.GET)
//方法三
@GetMapping("/user")
【连接post请求】
//方法一
@RequestMapping("/user")
//方法二
@RequestMapping(value = "/user",method = RequestMethod.POST)
//方法三
@PostMapping("/user&