Spring Web MVC入门

发布于:2025-03-17 ⋅ 阅读:(15) ⋅ 点赞:(0)

一、什么是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,也就是必填状态。