1.什么是SpringMVC
- 构建再Servlet(API)之上
- 是一个Web框架(具备Http能力)
- 来自于Spring webMVC模块
1.1 MVC定义
是软件工程中的一种软件架构模式
Model:模型 -》模型对象负责再数据库中存取数据
View:视图-》应用程序中处理数据显示的部分
Controller:控制器-》通常负责从视图读取数据,控制用户输入,并向模型发送数据
1.2 MVC和Spring MVC的关系
MVC是一种思想,而Spring MVC是对MVC的具体实现
Spring MVC能够将用户(浏览器)和Java程序连接起来、获取到用户访问时候的一些参数、执行业务逻辑之后,把程序执行结果返回给用户
1.3 Spring MVC的创建和连接
在Spring MVC中使用@RequestMapping来实现URL路由映射,也就是浏览器连接程序的作用
使用Spring Boot添加Sring Web模块=Spring MVC
1.浏览器获取前端接口和后端程序连接功能实现
@RequestMapping(“/xxx")既能修饰类又能修饰方法
特性:既支持GET方式的请求又支持POST方式的请求。。
@RequestMapping(value="/hi",method = RequestMethod.POST) //当前方法只支持POST请求等价于@PostMapping("/hi"),表示当前接口只支持POST类型的请求
name参数【key】要对应=》参数名称要相同
传参数注意事项:在Spring boot(Spring MVC)中传参一定要包装类型,而非基础类型,主要是因为,当需要一个基础类型,但又忘记传递的时候,使用基础数据类型程序会报错(500),而包装类型不会报错,只是值为null。
而使用包装类类型,值为null
1.4 SpringMVC(Spring Boot ->Spring Web)接收传递的对象2种类型:
1.普通对象
// @GetMapping("/show-user")
// public String showUser(User user){
// return user.toString();
// }
2.JSON对象(不等于普通对象)=》使用@RequestBody表示传JSON
//接受JSON对象(和第三方系统通讯时常见的场景
//添加@RequestBody注解之后,才能从前端获取到JSON格式的对象
@PostMapping("/show-json-user")
public String showJSONUser(@RequestBody User user)
{ return user.toString(); }
1.5 改变参数的传递方式
//改变参数的传递方式 -》直接在url地址种通过变量传参数
//http://127.0.0.1:8080/test/login/123/456
// @GetMapping("/login/{username}/{password}")
// public String login(@PathVariable("username") String username,
// @PathVariable("password") String password){
// return username+ ":" +password;
// }
// @GetMapping("/login/{username}/and/{password}")
// public String login1(@PathVariable("password") String pwd,
// @PathVariable("username") String usn){
// return usn+ ":" +pwd;
// }
1.6 上传文件
// @RequestMapping("/upload") // public String upfile(@RequestPart("myfile")MultipartFile file) throws IOException { // String path = "D:\\Generate\\img.png"; // //保存文件 // file.transferTo(new File(path)); // return path; // // }
@RequestMapping("/myupfile") public String myUpFile(@RequestPart("myfile")MultipartFile file) throws IOException { //根目录 String path = "D:\\Generate\\"; //根目录+【唯一的文件名】 path += UUID.randomUUID().toString().replace("-",""); //根目录+唯一的明文件+【文件的后缀】 ex:.png path += file.getOriginalFilename().toString().substring(file.getOriginalFilename().lastIndexOf(".")); file.transferTo(new File(path)); return path; }