【SpringMVC】 参数传递

一.项目目录

SpringBoot项目创建之后会生成很多目录

删除不需要的这四个文件/目录

【SpringMVC】 参数传递_第1张图片

目录

【SpringMVC】 参数传递_第2张图片

二.Spring MVC 和 MVC 

Spring MVC(Spring Web MVC)

Spring Web MVC 是⼀个 Web 框架

MVC : Model View Controller

它是一种思想 , 它把一个项目分成了三个部分. 

View视图层

界面显示 , 人机交互

Controller 控制器

选择处理模型 ,选择视图

Model模型层

处理业务逻辑 , 处理数据 .

总结:

MVC是一种思想, 而Spring实现了这种思想, 称为Spring MVC.

【SpringMVC】 参数传递_第3张图片

请求会直接到Controller.

SpringBoot是创建SpringMVC项目的一种方式 .  还有其他方式.

现状:

由于现在的项目都实现了前后端分离,后端开发人员不必编写前端页面,所以也就没有了view视图层.

因此,view又有了新的解释,之前返回的是试图,现在返回的是视图所需要的数据.

三.Spring MVC

学习Spring MVC,主要学习这几个方面 . 

1.建立连接 (客户端和服务器)

2.请求

3.响应

@RequestMapping 路由映射

1.可以修饰方法

方法名和注解value没有关系,建议一致.

浏览器127.0.0.1:8080/sayhi访问

【SpringMVC】 参数传递_第4张图片

2.也可以修饰类

访问路径:类的路径+方法路径

浏览器 127.0.0.1:8080/hello/sayhi 访问

【SpringMVC】 参数传递_第5张图片

开发中建议加上类路径 : 避免重复/方便查找代码

注意:

  • 注解里的斜杠可以写多层(第一个斜杠可以省略,但是不建议 )

【SpringMVC】 参数传递_第6张图片

  • 注解不写属性名,默认是value

【SpringMVC】 参数传递_第7张图片

  • 默认情况下 get 和 post 请求都是支持的 ; 也可以用method属性限制请求方式

【SpringMVC】 参数传递_第8张图片

参数的传递

1.传递单个参数

【SpringMVC】 参数传递_第9张图片

发送请求:

要求参数的名字一致

底层逻辑:从请求的参数中获取参数名为name的值,并给name赋值

【SpringMVC】 参数传递_第10张图片

2.传递多个参数

【SpringMVC】 参数传递_第11张图片

发送请求:

【SpringMVC】 参数传递_第12张图片


3.传递对象

开发中,接口的参数通常定义为对象

【SpringMVC】 参数传递_第13张图片

【SpringMVC】 参数传递_第14张图片

【SpringMVC】 参数传递_第15张图片

4.后端参数重命名

【SpringMVC】 参数传递_第16张图片

如果进行了重命名,必须使用重命名之后的名字name的传递传参 .

【SpringMVC】 参数传递_第17张图片

  • 使用了重命名注解之后,就是一个必传的参数,否则会报错. 但是也可以设置required为false来设置该参数为非必传.

【SpringMVC】 参数传递_第18张图片

5.传递数组

传递数组有两种方式.

  • 用同一个参数名

当请求中同一个参数有多个时,浏览器就会帮我们把这个参数封装成一个数组 .

【SpringMVC】 参数传递_第19张图片

  • 使用逗号,分割传递

【SpringMVC】 参数传递_第20张图片

6.传递集合

需要添加注解我为非必传

【SpringMVC】 参数传递_第21张图片

7.传递JSON

JavaScript Object Notation (JS对象说明) , 是一种轻量级的数据交互格式 , 本质是一个对象字符串.

@RequestBody

添加注解@RequestBody将请求中的JSON转化为Person对象

(JSON数据在body中添加)

【SpringMVC】 参数传递_第22张图片

通过Fiddler抓包,查看发送的请求的确是jason数据.

【SpringMVC】 参数传递_第23张图片

8.获取URL中的参数

@PathVariable

添加@PathVariable注解

【SpringMVC】 参数传递_第24张图片

9.上传文件

@RequestPart

【SpringMVC】 参数传递_第25张图片

【SpringMVC】 参数传递_第26张图片

 

注意:

  • 传参时参数的名字需要一致.
  • 如果使用基本数据类型,必须要传值,否则会报错.

  • 如果使用包装类,如果未传参,会使用默认值null

【SpringMVC】 参数传递_第27张图片

  • 5开头的错误通常是服务端错误    --- 查看日志

        4开头的错误通常是客户端错误

  • 状态码

http状态码   

不是后端定义的.

2xx:成功               3xx:重定向   

4xx:客户端错误    5xx服务端错误

业务状态吗

http响应成功的情况下,业务的响应分为不同的状态.

四.Cookie 和 Session

两者是会话机制.

cookie是客户端机制

问题:可以伪造

session是服务端机制

问题:分布式(部署在多个机器上)

4.1获取cookie

1.servlet方式

【SpringMVC】 参数传递_第28张图片

参数是请求里的内置对象.每个请求都有内置对象,如果需要就可以写,不需要就可以不写 .

2.注解方式 @CookieValue

【SpringMVC】 参数传递_第29张图片

4.2获取session

1.servlet原始方式

【SpringMVC】 参数传递_第30张图片

2.注解@SessionAttribute

【SpringMVC】 参数传递_第31张图片

该注解为必传参数,如果此时没有session,就会直接报错.

3.HttpSession 作为参数

红框部分等同于HttpSession session = request.getSession( false ) ;

【SpringMVC】 参数传递_第32张图片

4.3.获取header

1.servlet原始

【SpringMVC】 参数传递_第33张图片

2.注解 @RequestHeader

【SpringMVC】 参数传递_第34张图片


 

你可能感兴趣的:(JavaEE进阶,SpringBoot,spring,boot,mvc)