SpringMvc快速入门之使用篇
文章是为了结合工作需求来介绍springmvc,本文章只是切合实际的开发的场景对springmvc进行快速的入门介绍。
本篇文章不会对原理进行讲解。因为个人觉得有些对于新技术方面可以分为一下几个层次。
1.如何去使用这门技术
2.它的原理是什么
3.在理解原理的基础上,如何去模仿,
4.如何去进一步演化
所以本篇文章只是停留在第一阶段而已。本人看过许多的springmvc入门的文章,当然很多很好的,但是并不是我想要的,我要的想要的效果是,你一看文章就知道怎么去使用,在会使用的基础上,我再和你说这些原理。
一.RestFul风格
我在第一次看到这个名次的时候,第一反应是,这是什么,会不会很难。后来了解的才明白,其实你可以理解为这个是以前通过ajax请求方式。因为现在前端(包含客户端)越来越成熟。所以现在都是使用前后端分离比较多。这样子的话职责就清晰来。后端只负责将前端想要的数据通过json方式返回给前端就行。mvc只要添加@RestController注解,就以为当前控制器使用的是restful风格,意味着返回值如果是对象会自动转化为json返回前端
1.GET请求
//声明是restful风格
@RestController
public class RestFulController { @GetMapping("/get")
public String getRequest(String name, int age ){ return name+ "的年龄是"+age;
}
}

访问链接如红圈所示,返回值(即前端拿到的值如图所示)Tz的年龄是10
当然我们实际工作中大部分都是返回json使用。
@GetMapping("/get/responseJson")
public Object getRequestAndresponseJson(String name){
Map<String,Object> data = new HashMap();
Map<String,Object> result = new HashMap();
data.put("name", "TzSteady");
data.put("age", "25");
data.put("hobby", "hiphop");
result.put("code","0");
result.put("success","成功");
result.put("data", data);
return result;
}
上面我们最后返回来一个对象,并不是一个JSON。但我们请求的时候会你就会发现

前端收到的返回值是一个json,这就是@RestController注解的其中一个魅力。
2.POST请求
在实际业务中我们经常会使用表单提交或者json提交,下面这种是表单提交
2.1 表单提交
@PostMapping("/post")
public Object postRequest(String name, int age, String hobby){
return name+"的年龄是"+age+", 他的兴趣是"+hobby;
}

2.2 json 提交
在实际生产中,经常会使用到json提交,我们会将提交的参数包装一个参数类来接收前端提交的值,并使用@RequestBody将json请求转化为指定的bean
@PostMapping("/post/json")
public Object postRequestByJson(@RequestBody User user){
return user.getName()+"的年龄是"+user.getAge()+", 他的兴趣是"+ user.getHobby();
}
前端使用的方式为

这里值得一说的是,如果是使用json提交的话,前端需要设置头部的内容类型为json类型,也就是将Content-Type设置为application/json
当然如果是需要返回json的话,和上面get请求一样就行。
3.delete请求
我个人挺喜欢restful风格将请求都具体话,比如delete请求,很明显的让人知道,这个请求是删除行为的请求。
@DeleteMapping("/delete")
public Object deleteRequest(int userId){
Map<String, Object> result = new HashMap<>();
result.put("code", "0");
result.put("mesaage", "删除成功");
return result;
}

不过这种请求方式前端就会很纳闷了,因为前端所知道的只有get和post请求,那么前端如何发起一个delete请求呢

其实就是data:{_method:"DELETE", userId: 1}在传参中再加一个_method参数即可。所以可以看出delete请求其实也是基于get/post请求。只不过是相当于有个必传参数_method并值为delete
4.put请求
除了以上几种方式,还经常用到得是put请求,put请求使用的场景大部分为update行为
@PutMapping("/put")
public Object putRequestByJson(@RequestBody User user){
return user.getName()+"的年龄是"+user.getAge()+", 他的兴趣是"+ user.getHobby();
}

以上是springmvc在网络请求方面经常使用到的。但愿大家看到这篇文章后知道怎么使用。至于原理以及详细的讲解,在下篇再详细讲吧
SpringMvc快速入门之使用篇的更多相关文章
- SpringMVC 快速入门
SpringMVC 快速入门 SpringMVC 简介 SpringMVC是 Spring为展示层提供的基于Web MVC设计模式的请求驱动类型的轻量级Web框架,它的功能和Struts2一样.但比S ...
- .NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了
写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能.今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git ...
- Java快速入门-02-基础篇
Java快速入门-02-基础篇 上一篇应该已经让0基础的人对 Java 有了一些了解,接一篇更进一步 使用 Eclipse 快捷键 这个老师一般都经常提,但是自己不容易记住,慢慢熟练 快捷键 快捷键作 ...
- Java快速入门-01-基础篇
Java快速入门-01-基础篇 如果基础不好或者想学的很细,请参看:菜鸟教程-JAVA 本笔记适合快速学习,文章后面也会包含一些常见面试问题,记住快捷键操作,一些内容我就不转载了,直接附上链接,嘻嘻 ...
- Scala快速入门 - 基础语法篇
本篇文章首发于头条号Scala快速入门 - 基础语法篇,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的 ...
- springmvc快速入门(注解版本)
1)springmvc快速入门(传统版) 步一:创建springmvc-day02这么一个web应用 步二:导入springioc,springweb和springmvc相关的jar包 ------- ...
- springmvc快速入门(XML版本)
1)springmvc快速入门(传统版) 步一:创建springmvc-day01这么一个web应用 步二:导入springioc,springweb , springmvc相关的jar包 步三:在/ ...
- springMVC快速入门 共分为五步
springMVC快速入门 共分为5步分别为: 1 导入依赖 2 spring-mvc.xml 配置 3 web.xml配置 4 自定义一个核心控制类 5 页面配置 详细步骤以及代码 ...
- SpringMVC快速入门
导入开发包 前6个是Spring的核心功能包[IOC],第7个是关于web的包,第8个是SpringMVC包 org.springframework.context-3.0.5.RELEASE.jar ...
随机推荐
- LINUX-网络 - (以太网和WIFI无线)
ifconfig eth0 显示一个以太网卡的配置 ifup eth0 启用一个 'eth0' 网络设备 ifdown eth0 禁用一个 'eth0' 网络设备 ifconfig eth0 192. ...
- [模拟赛FJOI Easy Round #2][T3 skill] (最小割+最大权闭合子图(文理分科模型))
[题目描述] 天上红绯在游戏中扮演敏剑,对于高攻击低防御的职业来说,爆发力显得非常重要,为此,她准备学习n个技能,每个技能都有2个学习方向:物理攻击和魔法攻击.对于第i个技能,如果选择物理攻击方向,会 ...
- BZOJ 3277 串 & BZOJ 3473 字符串 (广义后缀自动机、时间复杂度分析、启发式合并、线段树合并、主席树)
标签那么长是因为做法太多了... 题目链接: (bzoj 3277) https://www.lydsy.com/JudgeOnline/problem.php?id=3277 (bzoj 3473) ...
- [luoguP2659] 美丽的序列(单调栈)
传送门 单调栈大水题 l[i] 表示 i 能扩展到的左边 r[i] 表示 i 能扩展到的右边 ——代码 #include <cstdio> #include <iostream> ...
- jconsole远程连接 jmx配置注意事项
由于在测试程序时需要收集程序运行时的内存,CPU等消耗情况.选择了jconsole这个jdk自带工具来观察.为了不影响程序运行状态,用远程连接的方式来具体观察. 首先,程序是放在ubutun系统服务器 ...
- Spring + quartz实现定时发送邮件功能
在做具体的系统管理时,往往会有每隔一段时间发给用户一些邮件的业务,现在参考的网上的大部分代码,写下了我自己的代码. 在ApplicationContext.xml的内容如下: <?xml ver ...
- 基本的文件I/O
基本的文件 I/O 抽象基类 Stream 支持读取和写入字节. Stream 集成了异步支持. 其默认实现根据其相应的异步方法来定义同步读取和写入,反之亦然. 所有表示流的类都是从 Stream 类 ...
- Windows 文件夹修改为exe的原理和解决办法
有关文件夹后缀改为exe的病毒 该病毒之前出现过,不过没多长时间便消失了,最新的这个应该是变种,下面解决一下该病毒在移动存储设备中的问题: 该病毒并不具备能够将文件夹改为文件的能力,只是将原有文件夹全 ...
- Oracle,mysql,sqlserver,postgresql语句几点比較
1.分页 Oracle: SELECT * FROM(SELECT A.*, ROWNUM RN FROM (select T.* from sj_receiptinfo t WHERE t.TAXN ...
- LeetCode 172. Factorial Trailing Zeroes (阶乘末尾零的数量)
Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...