SpringMVC

Author:老九
计算机专业
可控之事 沉重冷静 不可控之事 乐观面对
85180586@qq.com
😄 😆 😵 😭 😰 😅 😢 😤 😍 ☺️ 😎 😩

👍 👎 💯 👏 🔔 🎁 ❓ 💣 ❤️ ☕️ 🌀 🙇 💋 🙏 💦 💩 ❗️ 💢
————————————————
版权声明:本文为CSDN博主「浦上青天」的原创文章


知识点

Spring MVC是什么

  1. Spring MVC是一个Web框架
  2. Spring MVC是基于Servlet API构建的

MVC定义

  • MVC是Model View Controller的缩写,他是软件工程中的一种软件架构模式,他把软件系统分为模型(实体),视图,控制器三个部分
    在这里插入图片描述
  • Model:是应用程序中处理数据逻辑的部分,通常模型对象负责在数据库中进行存取数据
  • View:是应用程序中处理数据显示的部分,通过视图是依据模型数据创建的
  • Controller:是应用程序中处理用户交互的部分。通常控制器负责从视图中读取数据,控制用户输入,并向模型发送数据

MVC和SpringMVC关系

MVC是一种思想,SpringMVC是对MVC的实现,当用户在浏览器中输入url之后,我们的Spring MVC项目就可以感知到用户的请求

SpringMVC的功能

  1. 连接的功能:将用户(浏览器)和java程序连接起来,也就是访问一个地址能够调用我们的Spring程序
  2. 获取参数的功能:用户访问的时候会带一些参数,在程序中要想办法获取到参数
  3. 输出数据的功能:执行了业务逻辑之后,要把程序执行的结果返回给用户

连接用户和程序

@RequestMapping(“/hi”),这个注解作用是用来注册一个URL路由,通过这个路由,前端的请求可以实现和后端程序的交互,这个注解既能修饰方法,又能修饰类
默认情况下使用@RequestMapping会返回一个html页面,当加上 @ResponseBody 就能返回非页面的数据了
在这里插入图片描述
@RequestMapping参数设置
1.@RequestMapping 在不指定任何参数的情况下,那么此方法是既支持Get请求,又支持Post请求类型的
2.当给@RequestMapping 设置了 method属性之后,那么它只能支持设置的请求类型,其他类型会报错(405)
@GetMapping/PostMapping
忽略路由的情况下,二者是相等的
在这里插入图片描述
三者区别:
@RequestMapping既能修饰方法,又能修饰类,但@GetMapping和@PostMapping只能修饰方法,不能修饰类

SpringBoot热加载(热部署)配置
  1. 在Spring Boot项目中引入dev-tools框架
  2. 在IDEA的setting中,开启项目自动编译
    在这里插入图片描述
  3. 开启热部署(点击debug)

得到用户的参数

2.1获取单个参数(注意①参数类型必须是包装类,不然会报500,②多个参数之间使用&连接)③key值必须相对应
在这里插入图片描述
2.1.1重命名前端Key值(@RequestParam
将前端名为time的key赋值给后端的createtime变量
在这里插入图片描述
@RequestParam既能重命名请求参数,又能保证此参数为必传参数,若要设置参数可传可不传,就把required设置为false就可以了
在这里插入图片描述

2.2获取对象
在这里插入图片描述
前端若发送json对象,要加@RequestBody注解
在这里插入图片描述
2.3从URL中获得参数

在这里插入图片描述
2.4 @RequestPart 用于上传文件
在这里插入图片描述
2.5获取Cookie/Session/header
更简单的获取Cookie的方式
在这里插入图片描述
更简单的获取Header的方式
在这里插入图片描述

更简单的Session存储和读取
在这里插入图片描述

Spring MVC获取用户的请求总结:
  1. 获取单个参数:在方法中写相应的参数即可(参数要和前端参数对应)
  2. 获取对象:在方法中直接写对象就可以实现了
  3. 获取JSON对象:@RequestBody 加到方法中的参数的前面
  4. 获取文件:@Requestpart
  5. 获取用户的Cookie/Session/Header:@CookieValue,@SessionAttribute,@RequestHeader

返回结果给前端

1.返回text/html(加注解@ReponseBody)
不是@RequestBody
在这里插入图片描述
2.返回JSON数据
也得加@ReponseBody
在这里插入图片描述

请求转发或请求重定向

forward VS redirect
return 不但可以返回一个视图,还可以实现跳转
他们的区别:
1.请求转发是服务器帮客户进行请求转发,并将结果响应给客户端,URL地址是不变的;而重定向是请求重新定义到要访问的地址上,URL地址会发生改变。
2.使用请求转发那么有可能外部资源是会丢失,访问不到的;而请求重定向是直接重定向到URL地址了,所以请求重定向和访问目标地址的效果是一模一样的,所以不会存在外部资源(css样式等)丢失的情况

- forward:请求转发
-
在这里插入图片描述

- redirect:重定向
在这里插入图片描述
在这里插入图片描述

组合注解

@RestController=@Controller+@ResponseBody

多环境配置文件

在这里插入图片描述
有固定格式的命名方式,不同环境配置一个文件,每次只需要更改application.properties中的配置文件即可

先赞后看,养成习惯!!!^ _ ^♥♥♥
每天都更新知识点哦!!!
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘记关注我哦!

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李小浦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值