Spring MVC 详解(连接、获取参数、返回数据)

简介: Spring MVC 详解(连接、获取参数、返回数据)

在之前我们先简单那谈谈Spring、SpringBoot以及Spring MVC框架之间有什么关系?

首先Spring是一个框架,SpringBoot脚手架是为了快速开发Spring框架而创造的技术。可以理解为SpringBoot又在Spring上面包了一层壳子,是基于Spring的,是为了让使用Spring更爽,其核心还是Spring。然后,Spring MVC是Spring中的一个Web框架模块,是基于Servlet API构建的。

那MVC又是什么呢?

MVC 是Model View Controller 的首字母缩写,翻译中文就是“模型、视图、控制器”,它是一种设计模式,这种设计模式将软件(项目)分为三部分:模型、视图和控制器。


MVC和 Spring MVC是什么关系?

MVC是一种设计思想,而Spring MVC是一个具体的实现框架。有点类似IoC和DI的关系了,IoC是一种思想,而DI是这种思想的一种具体实现。

Spring MVC是一个基于MVC设计模式和Servlet API实现的Web 项日,同时Spring MVC 又是Spring 框架中的一个WEB模块,它是随着Spring 的诞生而存在的一个框架。Spring 和 Spring MVC诞生的历史是比较久远,在它们之后才有了Spring Boot。

Spring MVC项目如何创建呢?

基于Spring Boot框架添加一个Spring Web(它使用的就是Spring MVC)依赖,此时项目就变成了Spring MVC项目。

本文主要从以下三个方面进行阐述:

1、实现用户和程序的映射(在浏览器输入URL地址之后,能够在程序中匹配到相应方法)。

2、服务器端获取到用户的请求参数。

3、服务器端要将结果返回给用户(前端)。

1、实现用户和程序的映射

方法一:@RequestMapping("/ xxx")


@RequestMapping特征:

1、@RequestMapping 既能修饰类((可选)也能修饰方法。

2、默认情况下@RequestMapping 既支持 POST请求方式,也支持GET请求方式。

@RequestMapping 参数扩展(只支持某种类型的请求方式,比如 POST、GET、PUT等类型的请求方式):

方法2:使用@PostMapping ("/xxx")

方法3:使用@GetMapping("/xxx")


2、服务器端获取到用户的请求参数

1.获取单个参数


2.获取多个参数

3.获取对象


扩展功能:参数重命名

使用@RequestParam注解,当前端传过来的参数名称与我们在后端所写的参数名字不相对应的时候,而且还不能改动前端代码的时候以及后端代码大量使用了这个名称不便修改时,这个时候往往我们可以通过参数重命名的方式来解决。


比如前端传过来的是name,而我们后端大量使用的是username:

@RequestParam注意事项:如果在参数中添加@RequestParam注解,那么前端一定要传递此参数,否则就会报错,如果想要解决此问题,可以给@RequestParam里面添加required = false。


4.接收.JSON格式的数据

使用Postman模拟发送JSON数据给服务器:

5.从URL地址中获取参数(不是从URL地址中的参数部分获取参数)

6.上传文件

在上传文件之前,先讲讲不同运行平台的配置文件设置:

1、新建不同平台的配置文件(不同平台配置文件的命名规则: application-平台.yml(properits)【必须这样命名】)

2、在主配置文件中设置运行的配置文件

3.服务器端代码

4.使用Postman模拟上传文件

这个时候就会在目录下面看到上传的文件了:

Spring中设置上传文件的大小:

application.properties配置:

spring.servlet.multipart.max-file-size=100MB # 单个文件
spring.servlet.multipart.max-request-size=100MB # 单次请求,例如一个请求有多文件

application.yml配置:

spring:
    servlet:
      multipart:
        maxFileSize: 100Mb
        maxRequestSize: 1000Mb


7获取Cookie

a) Servlet获取Cookie 的方法

b)使用@Cookievalue注解实现Cookie 的读取


8、获取Header(请求头)里面的信息

a) Servlet获取Header的方法


b)使用@RequestHeader注解实现


9存储和获取Session

存储Session: Servlet和 SpringMVC操作方式是一样的。


获取Session方法1(Servlet 模式):


获取session方式2:@SessionAttribute

3、服务器端要将结果返回给用户(前端)

1.返回一个非静态页面的数据,使用@ResponseBody 注解


@ResponseBody 可以修饰类:表示当前类中所有方法都会返回一个非静态页面的数据;可以修饰方法:表示当前方法返回的是一个非静态页面的数据。否则默认返回的是一个html页面

2.使用@RestController(=Controller+ResponseBody)

3.后端接受JSON数据的标准格式


4.请求重定向和请求转发

请求转发(forward)实现方式1:(请求转发是服务器端帮用户实现的)


请求转发的实现方式2:

请求重定向(redirect)的实现方式1:(重定向的请求发生在客户端(浏览器端))


请求重定向实现方式2:

请求重定向和请求转发有什么区别?

1.定义不同

2.跳转方式不同

3.数据共享不同

4.最终URL地址不同

5.代码实现不同


相关文章
|
15天前
|
JSON 前端开发 Java
Spring MVC——获取参数和响应
本文介绍了如何在Spring框架中通过不同的注解和方法获取URL参数、上传文件、处理cookie和session、以及响应不同类型的数据。具体内容包括使用`@PathVariable`获取URL中的参数,使用`MultipartFile`上传文件,通过`HttpServletRequest`和`@CookieValue`获取cookie,通过`HttpSession`和`@SessionAttribute`获取session,以及如何返回静态页面、HTML代码片段、JSON数据,并设置HTTP状态码和响应头。
37 1
Spring MVC——获取参数和响应
|
15天前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
29 1
Spring MVC——项目创建和建立请求连接
|
22天前
|
存储 Java API
如何使用 Java 记录简化 Spring Data 中的数据实体
如何使用 Java 记录简化 Spring Data 中的数据实体
30 9
|
18天前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
24天前
|
JSON 前端开发 Java
【Spring】“请求“ 之传递 JSON 数据
【Spring】“请求“ 之传递 JSON 数据
78 2
|
24天前
|
前端开发 Java Spring
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
81 2
|
24天前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
48 2
|
2月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
27天前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
74 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
2月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向