SpringMVC学习----请求与响应
请求与响应
- 请求映射路径
- 提出问题
- 解决方法
- 细分请求路径
- UserController类
- BookController类
- 在类上方配置的请求映射
- 请求
- 请求方式
- 请求方法
- GET请求
- 传入参数结果
- POST请求
- POST传参解决中文乱码问题
- 在servlet容器初始化设置类中设置过滤器
- 传入参数结果
- 请求参数
- 普通类型
- 请求方法
- 普通类型传入参数和形参不同名问题
- 请求方法
- 传入参数结果
- POJO类型
- 简单类型
- 请求方法
- 传入参数结果
- 嵌套POJO类型
- 请求方法
- 传入参数结果
- 数组类型
- 请求方法
- 传入参数结果
- 集合类型
- 请求方法
- 传入参数结果
- JSON类型
- 集合参数
- 请求方法
- 配置类
- 传入参数结果
- POJO类型[简单参数和嵌套POJO参数]
- 请求方法
- 传入参数结果
- 数组集合参数
- 请求方法
- 传入参数结果
- 日期参数
- 请求方法
- 传入参数结果
- 响应
- 页面跳转
- @Response注解
- 响应文本数据
- 响应POJO数据
- 响应POJO对象
请求映射路径
提出问题
请求路径的冲突问题
解决方法
细分请求路径
UserController类
@Controller
public class UserController {//请求路径映射@RequestMapping("/user/save")@ResponseBodypublic String save(){System.out.println("user save ...");return "{'module':'user save'}";}//请求路径映射@RequestMapping("/user/delete")@ResponseBodypublic String delete(){System.out.println("user delete ...");return "{'module':'user delete'}";}
}
BookController类
@Controller
public class BookController {//请求路径映射@RequestMapping("/book/save")@ResponseBodypublic String save(){System.out.println("book save ...");return "{'module':'book save'}";}
}
在类上方配置的请求映射
/**
*@RequestMapping --设置当前控制器方法请求访问路径,如果设置在类上统一 设置当前控制器方法请求访问路径前缀
*/
@Controller
//类上方配置的请求映射与方法上面配置的请求映射连接在一起,形成完整的请求映射路径
@RequestMapping("/user")
public class UserController {//请求路径映射@RequestMapping("/save")@ResponseBodypublic String save(){System.out.println("user save ...");return "{'module':'user save'}";}//请求路径映射@RequestMapping("/delete")@ResponseBodypublic String delete(){System.out.println("user delete ...");return "{'module':'user delete'}";}
}
请求
请求方式
请求方法
//普通参数:请求参数与形参名称对应即可完成参数传递@RequestMapping("/commonParam")@ResponseBodypublic String commonParam(String name,int age){System.out.println("普通参数 name == "+name);System.out.println("普通参数 age == "+age);return "{'module':'common param'}";}
GET请求
普通参数: ur1地址传参,地址参数名与形参变量名相同,定义形参即可接收参数
传入参数结果
POST请求
普通参数: form表单post请求传参,表单参数名与形参变量名相同,定义形参即可接收参数
POST传参解决中文乱码问题
在servlet容器初始化设置类中设置过滤器
@Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter filter =new CharacterEncodingFilter();filter.setEncoding("UTF-8");return new Filter[]{filter};}
传入参数结果
请求参数
普通类型
请求方法
//普通参数:请求参数与形参名称对应即可完成参数传递@RequestMapping("/commonParam")@ResponseBodypublic String commonParam(String name,int age){System.out.println("普通参数 name == "+name);System.out.println("普通参数 age == "+age);return "{'module':'common param'}";}
普通类型传入参数和形参不同名问题
请求方法
/*** 普通参数:请求参数名与形参名不同时,使用@RequestParam注解关联请求参数名称与形参名称之间的关系* @RequestParam --绑定传入参数和形参的关系*/@RequestMapping("/commonParamDifferentName")@ResponseBodypublic String commonParamDifferentName(@RequestParam("name") String userName , int age){System.out.println("普通参数传递 userName ==> "+userName);System.out.println("普通参数传递 age ==> "+age);return "{'module':'common param different name'}";}
传入参数结果
POJO类型
简单类型
请求方法
//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递@RequestMapping("/pojoParam")@ResponseBodypublic String pojoParam(User user){System.out.println("pojo参数传递 user ==> "+user);return "{'module':'pojo param'}";}
传入参数结果
嵌套POJO类型
请求方法
//嵌套POJO参数:嵌套属性按照层次结构设定名称即可完成参数传递@RequestMapping("/pojoContainPojoParam")@ResponseBodypublic String pojoContainPojoParam(User user){System.out.println("pojo嵌套pojo参数传递 user ==> "+user);return "{'module':'pojo contain pojo param'}";}
传入参数结果
数组类型
请求方法
//数组参数:同名请求参数可以直接映射到对应名称的形参数组对象中@RequestMapping("/arrayParam")@ResponseBodypublic String arrayParam(String[] likes){System.out.println("数组参数传递 likes ==> "+ Arrays.toString(likes));return "{'module':'array param'}";}
传入参数结果
集合类型
请求方法
//集合参数:同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据@RequestMapping("/listParam")@ResponseBodypublic String listParam(@RequestParam List<String> likes){System.out.println("集合参数传递 likes ==> "+ likes);return "{'module':'list param'}";}
传入参数结果
JSON类型
集合参数
请求方法
/*** 集合参数:json格式* 1.开启json数据格式的自动转换,在配置类中开启@EnableWebMvc* 2.使用@RequestBody注解将外部传递的json数组数据映射到形参的集合对象中作为数据* @RequestBody --外部传递的json数组数据映射到形参的集合对象中作为数据*/@RequestMapping("/listParamForJson")@ResponseBodypublic String listParamForJson(@RequestBody List<String> likes){System.out.println("list common(json)参数传递 list ==> "+likes);return "{'module':'list common for json param'}";}
配置类
@Configuration
@ComponentScan("com.itnkb.controller")
/*** @EnableWebMvc --功能之一为开启json数据类型转换为对象*/
@EnableWebMvc
public class SpringMvcConfig {}
传入参数结果
POJO类型[简单参数和嵌套POJO参数]
请求方法
/*** POJO参数:json格式* 1.开启json数据格式的自动转换,在配置类中开启@EnableWebMvc* 2.使用@RequestBody注解将外部传递的json数据映射到形参的实体类对象中,要求属性名称一一对应*/@RequestMapping("/pojoParamForJson")@ResponseBodypublic String pojoParamForJson(@RequestBody User user){System.out.println("pojo(json)参数传递 user ==> "+user);return "{'module':'pojo for json param'}";}
传入参数结果
数组集合参数
请求方法
/*** 数组集合参数:json格式* 1.开启json数据格式的自动转换,在配置类中开启@EnableWebMvc* 2.使用@RequestBody注解将外部传递的json数组数据映射到形参的保存实体类对象的集合对象中,要求属性名称一一对应*/@RequestMapping("/listPojoParamForJson")@ResponseBodypublic String listPojoParamForJson(@RequestBody List<User> list){System.out.println("list pojo(json)参数传递 list ==> "+list);return "{'module':'list pojo for json param'}";}
传入参数结果
日期参数
请求方法
/*** 日期参数* @DateTimeFormat --设置日期类型数据格式,默认格式yyyy/MM/dd*/@RequestMapping("/dataParam")@ResponseBodypublic String dataParam(Date date,@DateTimeFormat(pattern="yyyy-MM-dd") Date date1,@DateTimeFormat(pattern="yyyy/MM/dd HH:mm:ss") Date date2){System.out.println("参数传递 date ==> "+date);System.out.println("参数传递 date1(yyyy-MM-dd) ==> "+date1);System.out.println("参数传递 date2(yyyy/MM/dd HH:mm:ss) ==> "+date2);return "{'module':'data param'}";}
传入参数结果
响应
页面跳转
请求方法
/*** 响应页面/跳转页面* 返回值为String类型,设置返回值为页面名称,即可实现页面跳转*/@RequestMapping("/toJumpPage")public String toJumpPage(){System.out.println("跳转页面");return "page.jsp";}
@Response注解
作用:设置当前控制器返回值作为响应体
核心:HttpMessageConverter接口
响应文本数据
请求方法
/*** 响应文本数据* 返回值为String类型,设置返回值为任意字符串信息,即可实现返回指定字符串信息,需要依赖@ResponseBody注解*/@RequestMapping("/toText")@ResponseBodypublic String toText(){System.out.println("返回纯文本数据");return "response text";}
请求结果
响应POJO数据
请求方法
/*** 响应POJO对象* 返回值为实体类对象,设置返回值为实体类类型,即可实现返回对应对象的json数据,需要依赖@ResponseBody注解和@EnableWebMvc注解*/@RequestMapping("/toJsonPOJO")@ResponseBodypublic User toJsonPOJO(){System.out.println("返回json对象数据");User user = new User();user.setName("itcast");user.setAge(15);return user;}
请求结果
响应POJO对象
请求方法
/*** 响应POJO集合对象* 返回值为集合对象,设置返回值为集合类型,即可实现返回对应集合的json数组数据,需要依赖@ResponseBody注解和@EnableWebMvc注解*/@RequestMapping("/toJsonList")@ResponseBodypublic List<User> toJsonList(){System.out.println("返回json集合数据");User user1 = new User();user1.setName("传智播客");user1.setAge(15);User user2 = new User();user2.setName("黑马程序员");user2.setAge(12);List<User> userList = new ArrayList<User>();userList.add(user1);userList.add(user2);return userList;}
请求结果
SpringMVC学习----请求与响应相关推荐
- 【SSM框架系列】SpringMVC的请求和响应
request和response request对象的作用 获取请求参数 作为域对象存取数据 获取请求头 请求转发 response功能 回写数据,JSON格式字符串 页面跳转(请求重定向) Spri ...
- spring—SpringMVC的请求和响应
SpringMVC的数据响应-数据响应方式 页面跳转 直接返回字符串 @RequestMapping(value = {"/qq"},method = {RequestMethod ...
- spring (四) SpringMVC的请求和响应
目录 前言 一.SpringMVC的数据响应 1.1 SpringMVC的数据响应方式 1.1.1页面跳转 直接返回字符串 1.1.2通过ModelAndView对象返回 1.2 ...
- SpringMVC处理请求或响应数据
SpringMVC处理请求数据或响应数据: 请求处理方法签名 Spring MVC 通过分析处理方法的签名,HTTP请求信息绑定到处理方法的相应人参中. Spring MVC 对控制器处理方法签名的限 ...
- JavaWeb框架(一):Web入门,Http的请求和响应,https介绍,Web实战自定义服务器
Servlet入门 MVC实战项目 仓储管理系统 JavaWeb入门介绍 Http协议 Http请求数据格式 Http响应数据格式 Web实战Demo:自定义服务器 对比Https协议 总结 Redi ...
- 06_03_SpringMVC 任务一: SpringMVC基本应用(SpringMVC请求与响应,进行日期转换工具类DateConverter)
任务一: SpringMVC基本应用 课程任务主要内容: SpringMVC简介 SpringMVC组件概述 SpringMVC请求 SpringMVC响应 静态资源开启 一 SpringMVC简介 ...
- 前端性能优化学习 05 请求和响应优化 01(DNS 解析、HTTP 长连接、HTTP2、避免重定向、压缩传输的数据资源)
请求和响应优化 目的:更快的内容到达时间. 核心思路: 更好的连接传输效率 更少的请求数量 更小的资源大小 合适的缓存策略 最佳实践: 减少 DNS 查找:每次主机名的解析都需要一次网络往返,从而增加 ...
- springmvc学习笔记(10)-springmvc注解开发之商品改动功能
springmvc学习笔记(10)-springmvc注解开发之商品改动功能 springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmv ...
- SpringMVC学习笔记
文章目录 SpringMVC学习笔记 Spring MVC 什么是 MVC 设计模式? Spring MVC 的核心组件 Spring MVC 的工作流程 如何使用? Spring MVC 注解 Sp ...
最新文章
- python3在线-Python 3中的新功能
- shell中变量的取值与赋值
- spring security实现登录验证以及根据用户身份跳转不同页面
- 捡到vivo手机怎么清除账号_为什么现在买手机,很少会去考虑OPPO和vivo呢?看一下老板怎么说...
- HDOJ-1203 I NEED A OFFER!
- 数据中心安全风控_平安银行Hadoop集群跨数据中心迁移项目告捷项目骨干专访
- Git提交失败之 Updates were rejected because the tip of your current branch is behind
- VMware Workstation 9.0安装体验
- Everything常见问题及搜索技巧
- 安装VS2008(转)
- Excel VBA 高级编程-出入库系统
- 权限梳理_请梳理头发,擦鼻子-我单身父亲的月
- 取出字符串中数字的最大值
- 苹果手机永久删除的照片怎么恢复?
- 中国超级计算机计算圆周率,圆周率都已算到31.4万亿位,为什么超级计算机还在算圆周率?...
- 2019腾讯广告算法大赛之清洗曝光广告数据集以及构造标签
- 密码爆破工具:Medusa(美杜莎)-操作说明hydra-操作说明
- python 离线翻译软件_Python使用tkinter制作在线翻译软件
- AutoJs学习-免ROOT免无障碍画圆球
- 体验极速——在旭日X3派上使用双频1300M USB无线网卡
热门文章
- 此 Google 帐号尚未与设备关联。要安装应用,请先访问设备上的 Play 商店应用。 了解详情
- 前后端项目对接流程梳理
- 江苏省高校,中专校职称计算机信息技术应用能力考核,江苏省高校中专校专业技术人员职称信息技术应用能力考核资料.doc...
- SQL/MYSQL在CMD命令操作符中创建数据库 、表单并插入数据查看
- 索氏提取器使用注意_索氏提取法注意事项
- P9:最大池化的使用
- 一些面试的SQL题 答案及建表全部齐全!
- 什么是GCC,ICC,IAR
- win10下docker部署nginx+node+mongodb+redis学习
- 【CZY选讲·最大子矩阵和】