请求与响应

  • 请求映射路径
    • 提出问题
    • 解决方法
      • 细分请求路径
        • 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学习----请求与响应相关推荐

  1. 【SSM框架系列】SpringMVC的请求和响应

    request和response request对象的作用 获取请求参数 作为域对象存取数据 获取请求头 请求转发 response功能 回写数据,JSON格式字符串 页面跳转(请求重定向) Spri ...

  2. spring—SpringMVC的请求和响应

    SpringMVC的数据响应-数据响应方式 页面跳转 直接返回字符串 @RequestMapping(value = {"/qq"},method = {RequestMethod ...

  3. spring (四) SpringMVC的请求和响应

    目录 前言 一.SpringMVC的数据响应 1.1 SpringMVC的数据响应方式 1.1.1页面跳转        直接返回字符串 ​  1.1.2通过ModelAndView对象返回 1.2  ...

  4. SpringMVC处理请求或响应数据

    SpringMVC处理请求数据或响应数据: 请求处理方法签名 Spring MVC 通过分析处理方法的签名,HTTP请求信息绑定到处理方法的相应人参中. Spring MVC 对控制器处理方法签名的限 ...

  5. JavaWeb框架(一):Web入门,Http的请求和响应,https介绍,Web实战自定义服务器

    Servlet入门 MVC实战项目 仓储管理系统 JavaWeb入门介绍 Http协议 Http请求数据格式 Http响应数据格式 Web实战Demo:自定义服务器 对比Https协议 总结 Redi ...

  6. 06_03_SpringMVC 任务一: SpringMVC基本应用(SpringMVC请求与响应,进行日期转换工具类DateConverter)

    任务一: SpringMVC基本应用 课程任务主要内容: SpringMVC简介 SpringMVC组件概述 SpringMVC请求 SpringMVC响应 静态资源开启 一 SpringMVC简介 ...

  7. 前端性能优化学习 05 请求和响应优化 01(DNS 解析、HTTP 长连接、HTTP2、避免重定向、压缩传输的数据资源)

    请求和响应优化 目的:更快的内容到达时间. 核心思路: 更好的连接传输效率 更少的请求数量 更小的资源大小 合适的缓存策略 最佳实践: 减少 DNS 查找:每次主机名的解析都需要一次网络往返,从而增加 ...

  8. springmvc学习笔记(10)-springmvc注解开发之商品改动功能

    springmvc学习笔记(10)-springmvc注解开发之商品改动功能 springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmv ...

  9. SpringMVC学习笔记

    文章目录 SpringMVC学习笔记 Spring MVC 什么是 MVC 设计模式? Spring MVC 的核心组件 Spring MVC 的工作流程 如何使用? Spring MVC 注解 Sp ...

最新文章

  1. python3在线-Python 3中的新功能
  2. shell中变量的取值与赋值
  3. spring security实现登录验证以及根据用户身份跳转不同页面
  4. 捡到vivo手机怎么清除账号_为什么现在买手机,很少会去考虑OPPO和vivo呢?看一下老板怎么说...
  5. HDOJ-1203 I NEED A OFFER!
  6. 数据中心安全风控_平安银行Hadoop集群跨数据中心迁移项目告捷项目骨干专访
  7. Git提交失败之 Updates were rejected because the tip of your current branch is behind
  8. VMware Workstation 9.0安装体验
  9. Everything常见问题及搜索技巧
  10. 安装VS2008(转)
  11. Excel VBA 高级编程-出入库系统
  12. 权限梳理_请梳理头发,擦鼻子-我单身父亲的月
  13. 取出字符串中数字的最大值
  14. 苹果手机永久删除的照片怎么恢复?
  15. 中国超级计算机计算圆周率,圆周率都已算到31.4万亿位,为什么超级计算机还在算圆周率?...
  16. 2019腾讯广告算法大赛之清洗曝光广告数据集以及构造标签
  17. 密码爆破工具:Medusa(美杜莎)-操作说明hydra-操作说明
  18. python 离线翻译软件_Python使用tkinter制作在线翻译软件
  19. AutoJs学习-免ROOT免无障碍画圆球
  20. 体验极速——在旭日X3派上使用双频1300M USB无线网卡

热门文章

  1. 此 Google 帐号尚未与设备关联。要安装应用,请先访问设备上的 Play 商店应用。 了解详情
  2. 前后端项目对接流程梳理
  3. 江苏省高校,中专校职称计算机信息技术应用能力考核,江苏省高校中专校专业技术人员职称信息技术应用能力考核资料.doc...
  4. SQL/MYSQL在CMD命令操作符中创建数据库 、表单并插入数据查看
  5. 索氏提取器使用注意_索氏提取法注意事项
  6. P9:最大池化的使用
  7. 一些面试的SQL题 答案及建表全部齐全!
  8. 什么是GCC,ICC,IAR
  9. win10下docker部署nginx+node+mongodb+redis学习
  10. 【CZY选讲·最大子矩阵和】