首页 >> 大全

2.什么是Spring Web MVC

2023-11-10 大全 31 作者:考证青年

目录

1.什么是MVC

2.什么是 Web MVC

3.和MVC的关系

4.使用

4.1创建

4.2建立链接

4.3注解介绍

4.3.1@

4.3.2@

4.4获取参数

4.4.1获取单个参数

4.4.2传递参数

4.4.3传递对象

4.4.4后端参数映射

4.4.5传递数组

4.4.6传递集合

1.什么是MVC

MVC全称:Model View

View:程序中专门用来与浏览器进行交互,展示数据资源.

Model:程序的主体部分,用来处理程序中数据逻辑的部分.

:相当于一个分发器,用来连接视图和模型.

举个例子:我们去公司面试,HR会安排面试所需要用的会议室,根据候选人去通知不同的部门来安排面试,面试结束,由HR来通知结果.

HR就是View,接待与通知.

不同的部门就是,HR根据候选人来选择对应的部门进行面试.

面试官就是Model,处理面试的这个事情.

2.什么是 Web MVC

Web MVC是基于 API构建的原始框架,简称 MVC,即 Web MVC 是⼀个 Web 框架.

掌握 MVC就需要理解1.MVC,2.Web框架

在创建项目时,我们勾选的23选项 Web就是的框架~

不要懵~只是实现的其中一种方式而已~

用一张图来更好地诠释实现MVC:

掌握的三个方面:建立连接、请求响应.

3.和MVC的关系

MVC是一种思想,是MVC思想的一种具体实现.

即是实现了MVC思想,并继承了 API的web框架.

4.使用 4.1创建

首先在项目时,再添加依赖的时候,添加.

4.2建立链接

创建一个类,实现用户用过浏览器和程序之间的交互:

package com.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@RequestMapping("/sayHello")//方法名和路径名无需一致public String sayHello() {return "hello,SpringBoot";}
}

直接访问:

:8080/

就可以看到返回的数据了:

4.3注解介绍 4.3.1@

@:用来注册接口的路由映射的.

路由映射:当用户访问一个URL时,将用户的请求对应到程序中的某个类的某个方法时的过程

以上述代码为例:表示服务收到请求时,路径/的请求就会调用这个方法的代码

注意:

1.@的URL路径最前面加不加/(斜杠)都可以!但是在企业开发的角度来讲,统一要求:前加后不加~

@RestController
public class HelloController {@RequestMapping("sayHello")public String sayHello() {return "hello,SpringBoot";}
}

2.@注解中没有写属性名,默认是value;若要限制请求方式,就要使用属性~

只想支持某种方法的话,那就 = .方法

GET: = .GET;POST: = .POST

@RestController
public class HelloController {@RequestMapping(value = "/sayHello",method = RequestMethod.GET)public String sayHello() {return "hello,SpringBoot";}
}

3.@:即可以修饰类(请求初始信息),也可以修饰方法(请求具体信息);当修饰类和方法时,访问的地址是类路径 + 方法路径.以及@ 的URL路径也可以是多层路径, 最终访问时, 依然:类路径 + 方法路径

@RequestMapping("/Hi/MVC")
@RestController
public class HelloController {@RequestMapping("/sayHello")public String sayHello() {return "hello,SpringBoot";}
}

访问::8080/Hi/MVC/

4.3.2@

上述中,@已经满足了我们的访问要求,那为什么还要加@呢?

当我们把@删除后访问发现程序报错404,这个就是@的作用~

4.4获取参数 4.4.1获取单个参数

@RequestMapping("/param")
@RestController
public class ParamController {@RequestMapping("/m1")public String m1(String name) {return "接收到的参数name:" + name;}
}

:8080/param/m1?name=访问:8080/param/m1?name=

发现后端成功接收到了name参数的值,在赋值时一定要看好参数是否一致.

在使用基本类型来接受参数时,参数必传(除类型),否则会报500错误;当类型不匹配时,会报400错误.

4.4.2传递参数

正常传递

    @RequestMapping("/m1/int")public Object method1GetInt(int age){return "接收到参数age:" + age;}
}

通过观察请求和响应,HTTP响应状态码为200,-Type为text/html

当不传递某个参数时:

通过观察请求和响应,HTTP响应状态码为500

HTTP响应状态码为500:服务器出现内部错误. 一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃)会产生这 个状态码.

那么该怎么解决呢?

打开你的IDEA,观察日志!从下往上看,按照报错的信息解决错误即可~

int类型的参数'age',虽然为可选的, 但由于被声明为基本类型⽽不能转换为空值. 考虑将其声明为对应基本类型的包装类型.

传递参数类型不匹配

通过观察请求和响应,HTTP响应状态码为400

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了