4-2 Spring MVC框架-01
Spring MVC框架-01
Ⅰ.接收客户端请求
1. 关于Spring MVC框架
- Spring MVC是基于Spring框架基础之上的
- 作用:
接收请求,响应结果,处理异常- 主要解决了后端服务器接收客户端提交的请求,并给予响应的相关问题
2. 依赖项
- spring-webmvc
- javax.servlet
3. HTTP状态错误
| 状态 | 问题 |
|---|---|
| 400 | 请求参数错误(地址栏?后边的参数或参数值) |
| 404 | 请求资源不存在(网址错了,请求问题...) |
| 405 | 请求方式错误(post/get) |
| 406 | Not acceptable“无法接受” (的格式) |
| 500 | 服务器出现异常EXception看服务器(IDEA) |
4.注意事项
- 组件扫描必须配置在Spring MVC的配置类中
Ⅱ.@RequestMapping注解
1.主要作用
- 是配置请求路径与处理请求的方法的映射关系
2.相关配置参数
| – method: | 请求方式 |
|---|---|
| – headers: | 请求头 |
| – params: | 请求参数 |
| – consumes: | 请求文档类型 |
| – produces: | 响应文档类型 |
3.相关注解
– @GetMapping
– @PostMapping
– @PutMapping (不常用)
– @DeleteMapping (不常用)
※重要小结
精简小结:
作用: 配置请求路径
类RequestMapping 配置
produce"text/xxx;charset=utf-8"方法GetMapping/PostMapping限制请求路径的解析
详细小结:
[★★★★★] 在开发实践中,通常:
– 在类上使用@RequestMapping,配置请求路径,并配置produces以指定响应的文档类型
@Controller
@RequestMapping(value = "/user",produces = "text/html;charset=utf-8")
public class UserController (){}
– 在方法上使用@GetMapping、@PostMapping等限制了请求类型的注解,配置请求路径
Ⅲ.响应正文
1.相关注解
| 注解 | 问题 |
|---|---|
| @EnableWebMvc | 添加在Spring MVC配置类上的注解,当响应正文,且响应的是JSON格式的结果时,必须添加此注解,否则将导致406错误,另外,在Spring Boot项目中不需要手动添加(SpringMVC的增强兼容模式) |
| @ResponseBody | 响应正文 |
| @RestController | 使用了@Controller和@ResponseBody作为元注解,具有这2个注解的效果 |
| @RequestMapping | 通常添加在类上,用于配置请求路径的前缀部分,也使用produces属性配置此控制器类中所有处理请求的方法响应时的文档类型,例如在类上配置为@RequestMapping(value="user", produces="application/json; charset=utf-8") |
| @GetMapping | 是将请求类型限制为GET的@RequestMapping,通常添加在处理请求的方法上,用于配置此方法映射的请求路径 |
| @PostMapping | 参考@GetMapping |
※重要小结
响应json格式的正文
- – 添加jackson-databind依赖
- – 在Spring MVC配置类上添加@EnableWebMvc注解
- – 自定义类,作为处理请求的方法的返回值类型
- – 类的属性必须添加Setter & Getter
- – 使得处理请求的方法是响应正文的
Ⅳ.接收请求参数
1.请求参数注解
- @RequestParam注解
- 配置name属性 :
- 配置required属性: 是否要求客户端必须提交此请求参数,
- 配置defaultValue属性: 配置此请求参数的默认值,
2.关于数据封装
一个参数直接加到方法里边
多个参数进行数据封装
封装的参数必须写Setter/Getter方法(很多框架json/spring mvc会自动调用)-
※重要小结
● [★★★★★] 你可以将请求参数一个个的声明为处理请求方法的参数,也可以将多个参数封装到一个自定义类中,使用自定义类作为处理请求的方法的参数,Spring MVC框架会自动接收客户端提交的请求参数,并用于调用你编写的处理请求的方法
● [★★★★★] 在大部分情况下,推荐使用将参数封装到自定义类的做法
● [★★★★★] 你需要保证非String类型的参数是Spring框架可以成功自动转换类型的,或者,对转换失败有进一步的处理,或可以接受转换失败带来的后果
4-2 Spring MVC框架-01的更多相关文章
- Spring MVC篇一、搭建Spring MVC框架
本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij创建,配合maven管理.整体的目录结构如图: 其中ja ...
- Spring MVC 框架的架包分析,功能作用,优点
由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...
- 从零开始学 Java - 搭建 Spring MVC 框架
没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...
- 【WEB】初探Spring MVC框架
Spring MVC框架算是当下比较流行的Java开源框架.但实话实说,做了几年WEB项目,完全没有SpringMVC实战经验,乃至在某些交流场合下被同行严重鄙视“奥特曼”了.“心塞”的同时,只好默默 ...
- Spring mvc框架 controller间跳转 ,重定向 ,传参
一.需求背景 1. 需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示. @Req ...
- spring mvc 框架搭建及详解
现 在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不 ...
- Spring MVC框架搭建
Spring MVC篇一.搭建Spring MVC框架 本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij ...
- Spring MVC框架下的第一个Hello World程序
本程序是一个maven程序,使用maven方便管理jar包和程序,简化了操作步骤.本程序的目的是通过一个简单的程序,了解Spring MVC框架的基本工作流程,由简入繁的学习Spring MVC框架, ...
- spring MVC框架入门(外加SSM整合)
spring MVC框架 一.什么是sping MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 W ...
随机推荐
- 聊聊如何在华为云IoT平台进行产品开发
摘要:华为云物联网平台承载着南北向数据互通的功能职责. 本文分享自华为云社区<如何基于华为云IoT物联网平台进行产品开发>,作者: Super.雯 . 华为云物联网平台承载着南北向数据互通 ...
- MybatisCodeHelperPro简单使用
1.idea安装 2.连接mysql 3.创建实体等关联类 ,选择数据库表右键选择如图 4配置 生成后的 5简单应用 可以直接生成xml 总结:非常的方便快捷.
- form表单与CSS选择器和样式操作
form表单 """获取前端用户数据并发送给后端服务器""" <form action=""></fo ...
- 启动mysql报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
mysql之前还好好的,突然就启动不了了,我也很纳闷,原来是服务没有启动 netstat -ntlp 后,发现并没有启动 于是我试着启动mysql service mysqld start 查看了my ...
- VMware 虚拟机图文安装和配置 Rocky Linux 8.5 教程
前言 2020 年,CentOS 宣布:计划未来将重心从 CentOS Linux 转移到 CentOS Stream.CentOS 8 的生命周期已于 2021 年 12 月 31 日终止,而 Ce ...
- 探索ABP基础架构-下
配置应用程序 ASP.NET Core 的配置系统提供了一个基于键值对的配置方法.它是一个可扩展的系统,可以从各种资源中读取键值对,例如 JSON 设置文件.环境变量.命令行参数等等. 设置配置值 默 ...
- 由C# dynamic是否装箱引发的思考
前言 前几天在技术群里看到有同学在讨论关于dynamic是否会存在装箱拆箱的问题,我当时第一想法是"会".至于为啥会有很多人有这种疑问,主要是因为觉得dynamic可能是因为有点特 ...
- 144_Power Pivot贷款之等额本息与等额本金
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 买房贷款的时候会遇到等额本息与等额本金的问题,今天做了一个两者对比,看看如何选择,来一张对比图. 等额本息的前期 ...
- 基于 BaGet 搭建 Nuget 服务器
1 前言 1.1 BaGet 介绍 BaGet 是一个轻量级的,开源的,跨平台的 Nuget 和 symbol 服务器. 1.2 环境介绍 操作系统:CentOS 7 使用 Docker 安装 2 安 ...
- 【单片机】CH32V103v8t6开发板调试笔记
一.开发板样式和资源 找官网的商务申请了一块开发板,打算试一下串口打印程序测试,发现网上关于这个板子的相关资料特别少,为方便后来人,就顺便记录一下,板子资源如下图所示. 板子芯片的引脚排布图 二.使用 ...