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的更多相关文章

  1. Spring MVC篇一、搭建Spring MVC框架

    本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij创建,配合maven管理.整体的目录结构如图: 其中ja ...

  2. Spring MVC 框架的架包分析,功能作用,优点

    由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...

  3. 从零开始学 Java - 搭建 Spring MVC 框架

    没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...

  4. 【WEB】初探Spring MVC框架

    Spring MVC框架算是当下比较流行的Java开源框架.但实话实说,做了几年WEB项目,完全没有SpringMVC实战经验,乃至在某些交流场合下被同行严重鄙视“奥特曼”了.“心塞”的同时,只好默默 ...

  5. Spring mvc框架 controller间跳转 ,重定向 ,传参

     一.需求背景     1. 需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示.   @Req ...

  6. spring mvc 框架搭建及详解

    现 在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不 ...

  7. Spring MVC框架搭建

    Spring MVC篇一.搭建Spring MVC框架 本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij ...

  8. Spring MVC框架下的第一个Hello World程序

    本程序是一个maven程序,使用maven方便管理jar包和程序,简化了操作步骤.本程序的目的是通过一个简单的程序,了解Spring MVC框架的基本工作流程,由简入繁的学习Spring MVC框架, ...

  9. spring MVC框架入门(外加SSM整合)

    spring MVC框架 一.什么是sping MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 W ...

随机推荐

  1. 使用 docker-compose 部署 golang 的 Athens 私有代理

    go中私有代理搭建 前言 为什么选择 athens 使用 docker-compose 部署 配置私有仓库的认证信息 配置下载模式 部署 使用秘钥的方式认证私有仓库 1.配置秘钥 2.配置 HTTP ...

  2. 使用 Python 来自动回微信

    准备 Python3 Python Itchat库(可以通过pip install itchat来安装) (可选)Python Pymongo库(可以通过pip install pymongo来安装) ...

  3. C++基础-1-内存管理(全局区、堆区、栈区)

    1. 内存管理 1.1 全局区 1 #include<iostream> 2 using namespace std; 3 4 // 全局变量 5 int g_a = 10; 6 int ...

  4. 绕过 Docker ,大规模杀死容器

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 作者 | Connor Brewster 译者 | Sambodhi 策划 | Tina 要让 ...

  5. 史上最全Redis面试题(2020最新版)

    一个执着于技术的公众号 导读:2020 年最新版 Redis面试题,两万字干货,为方便读者阅读,已整理为PDF文档,后台回复『redis』即可领取.希望对大家有帮助! 概述 1. 什么是Redis? ...

  6. Flask01 第一个flask项目

    参考地址:https://github.com/miguelgrinberg/microblog/tree/v0.1 flask环境[苹果M1] 添加虚拟环境 python3 -m venv venv ...

  7. linux篇-linux LAMP yum版安装

    LAMP(linux.apache.mysql.php),是四个套件的合成,简单讲就是要把php运行在linux上,需要依赖apache和mysql数据库. 1 准备好一个linux系统(centos ...

  8. CMU 15-445 数据库课程第四课文字版 - 存储2

    熟肉视频地址: CMU数据库管理系统课程[熟肉]4.数据库存储结构2(上) CMU数据库管理系统课程[熟肉]4.数据库存储结构2(下) 1. 面向日志的存储 上节课我们讲完了面向元组的存储,这节课从面 ...

  9. Navicat可视化MySQL数据库

    Navicat可视化MySQL数据库 Navicat内部封装了所有的操作数据库的命令,用户只需要点击操作即可,无需书写sql语句. navicat能够充当多个数据库的客户端. 具体操作参考百度. py ...

  10. GDKOI 2021 Day1 TG 。。。

    看着一群群比 LHF , HQX 还强的大佬涌进了机房,本蒟蒻表示慌得一批 T1 讲题人说最简单的签到题本蒟蒻表示... \(Update\) 用 ds , dt 两个变量记录点 i 连向 s 或 t ...