在先知道springMVC之前 我们先了解一下 MVC模式
MVC模式是表现层的一种设计模式 M代表着模型(model) V代表着视图(View) C代表着控制器(controller) 使用MVC的目的是将M和V分离,从而使程序可以有不同的表现形式
mvc具体来说就是(
V:即视图指用户看到并与之交互的界面,主要的作用是发送请求和数据并展示结果
C:即控制器,主要用来接收前端的请求和数据,并将请求数据交给对应的模型来处理,然后再确定用哪个视图来显示返回的结果
M:即模型指业务规则,主要用来处理前端的请求和数据并返回处理结果。
)
SpringMvc是一款非常优秀的基于Java编写的实现了MVC设计模式的轻量级WEB层框架,其主要的作用包括接收前端的请求、接收前端数据、转发业务层和响应结果,并且SpringMVC与Spring整合兼容性好,功能强大,支持RESTful风格
spring常用到的注解
@Controller:控制器注解,用来标识该类为SpringMVC的Controller对象,该注解不能使用@Component替换
@RequestMapping:用来设置controller类中方法的请求访问路径,可以写在类上和方法上
@GetMapping:作用等同于@RequestMapping,只能处理请求方式为GET的请求
@PostMapping:作用等同于@RequestMapping,只能处理请求方式为POST的请求
@DeleteMapping:作用等同于@RequestMapping,只能处理请求方式为DELETE的请求
@PutMapping:作用等同于@RequestMapping,只能处理请求方式为PUT的请求
@RequestBody:用来实现接收http请求的json数据,将json数据转换为java对象
@ResponseBody:如果controller类中方法的返回值为对象,SpringMVC会将其转换为json响应给前端,如果方法返回值是字符串,则会原样返回到前端
@RequestParam:用来绑定请求参数与Controller方法形参之间的关系
@PathVariable:用来接收RESTFUL的路径参数
@RestController:作用等同于@Controller+@ResponseBody
SpringMvc 的一个小案例 更加了解一下SpringMVC
第一步 导入相关依赖 和tomcat启动
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
第二步创建Controller控制器类
第三步创建配置类(SpringMvcConfig)
第四步创建tomcat容器的servlet配置类(等到学springBoot时将不用写这个)
springMVC获取请求参数的几种
SpringMVC为我们提供了很多种获取参数的方式,其中包含普通参数、POJO类型参数、嵌套POJO类型参数、数组类型参数、集合类型参数以及JSON数据类型参数。
1.普通参数有两种数据传递方式
方式一:url?key=value,确保方法的形参与key一致即可接收,如果不一致需要使用@RequestParam来建立关系
方式二:url/value,RESTFul参数传递方式即为路径参数,需要使用@PathVariable来接收
2.普通参数如果过多,在方法中编写参数就比较麻烦,此时可以使用POJO数据类型来接收,需要确保POJO的属性名和参数的key一致即可
3.POJO对象也可以嵌套其他的POJO,可以用来接收比较复杂的数据,比如用户中包含地址信息
4.数组类型参数可以用来接收key相同的多个参数,比如用户的爱好信息等
5.集合类型参数,使用数组来接收的数据也可以使用集合来接收,但是需要在参数前添加@RequestParam注解
6.对于JSON数据类型参数,后台接收需要使用@RequestBody
1普通参数类型
user类
数组与集合
json传输数据(重点)(注json传输数据必须要在请求参数前面加@RequestBody注解要不然是会传输不过去的!)
利用PostMan来发送json数据(增加(post),(put))
响应前端的几种形式
rest风格 (风格是可以打破的,更改的,不是标准) REST即表现形式状态转换,它是一种软件架构风格,不是标准。简单概括就是通过使用同一个请求地址和不同的请求动作来区分对资源进行不同的操作,如GET用来做查询,POST用来做新增,PUT用来做修改,DELETE用来做删除。
restful RESTful是基于REST构建的API统称为RESTful。
rest数据书写优化是我们常用的
优化前的代码如下
优化后大大减少了书写代码量
现将controller类上的注解改变为@RestController(他的作用等同于@ResponseBody+@Controller)
然后其中的方法注解也更改了
标签:请求,SpringMvc,POJO,参数,注解,接收,restful,用来 From: https://www.cnblogs.com/jiayuyao/p/16789232.html