一、什么是SpringMVC
首先,MVC是一种架构设计模式,也是一种思想,而SpringMVC是对MVC思想的具体实现,除此之外,SpringMVC还是一个Web框架。
总的来说,SpringMVC就是一个实现MVC模式的Web框架。
而MVC可以用一张图表示
其中
Controller:负责接收用户请求,选择处理模型,选择视图。
View:界面排版布局,展示模型数据。
Model:处理业务逻辑,处理数据。
二、学习SpringMVC
学习SpringMVC,重点也就是学习如何通过浏览器和用户程序进行交互。
主要分以下三个方面:
1.建立连接:将用户(浏览器)和Java程序连接起来,通过访问一个域名地址,能够调用到我们的Spring程序。
2.请求:用户在发送请求时,会带有一些数据,所以这里主要是获取参数的功能。
3.响应:执行了业务逻辑后,要把程序执行的结果返回给用户,也就是响应。
首先,我们要创建一个SpringMVC项目,这里为了方便,使用了IDEA专业版(IDEA社区版也可以,但是没有集成Maven,需要手动下载)
1.创建项目时,生成器选择Spring Boot,因为Spring Boot也是实现SpringMVC的一种方式。
2.类型选择Maven,JDK和Java只要是1.8以上就行,因为现在Springboot版本大都是3.x,已经不支持jdk8了。
Springboot选择3.x即可,但是不要选择不稳定版,不稳定版就是后缀带有SNAPSHOT的。
其次,依赖选择Web中的SpringWeb。
点击创建后就是这个界面
如果为首次创建,会弹出一个这样的选项,一定要点,这是下载响应的依赖文件的,后续再创建就没有这个选项了。
创建好后,我们目录中其实有几个目录根本用不到,可以删除。
创建好后,我们就可以在src/java/项目名 里面创建Java类了
1.创建一个“hello word”来测试一下
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class hello {
@RequestMapping("/hello")
public String hello() {
return "Hello World";
}
}
在浏览器中输入“http://127.0.0.1:8080/hello”来看一下效果。(8080为SpringMVC的默认端口号,hello则是我使用@RequestMapping设置映射请求的请求路径的具体信息)
注意在浏览器里连接主机时,一定要注意java程序是运行状态,否则就会显示拒绝访问。
2.使用postman来创建一个HTTP请求,查看Java程序的响应
postman很好下载,各大应用商店都有,而且安装时一路next就行了,注意要给postman访问个人网络的权限。
@RequestMapping("r1")
public String r1(String name) {
return "Hello " + name;
}
写好代码后,使用postman创建HTTP请求(GET或者POST方法都可以)
点击send,观察响应。(注意重新启动Java程序)
在使用int类型时,推荐使用Integer,因为它可以自动装箱,也就是即使没传参数也会有一个默认值null,而int类型没传入参数的话,就会报错。
3.使用一个类来作为参数
首先创建一个类。(这里使用lombok提供的@Data来快速创建get和set函数)
@Data
public class Student {
private int id;
private String name;
private int age;
}
然后创建方法来接收Student。
@RequestMapping("/r2")
public String r2(Student student) {
return student.toString();
}
使用postman来传递参数测试
4.设置别名和必填/非必填参数
使用@RequestParam注解
@RequestMapping("/r3")
public String r3(@RequestParam(value = "Username",required = false) String name) {
return name;
}
这时是非必填状态,而且只能使用name作为参数,不可以使用Username,Username只是方便程序员理解。
request默认为true,也就是必填状态。