zoukankan      html  css  js  c++  java
  • 在RestController中获取各种信息的方法

    内容 获取方法
    URL中路径的一部分 首先需要在RequestMapping做映射, 之后在方法中可以通过注解使用映射的变量
    @GetMapping("/{id}")
    public Student getStudent(@PathVariable("id") int id {}
    可以写多个)
    POST方法传递过来的Json 给参数前加个@RequestBody注解, Spring会自动把POST的Request Body部分的Json转成方法声明的类。如果转化失败会返回4xx错误,表示请求参数有问题。
    public Student updateOne(@RequestBody Student student)
    POST方法传递的是表单数据 首先需要声明传入的是application/x-www-form-urlencoded的格式,可在RequestMapping增加consumes参数:
    @PostMapping(value="/students",consumes=MediaType.APPLICATION_FORM_URLECODED_VALUE)
    在方法上增加参数,参数使用@RequestParam注解即可
    public Object insert(@RequestParam(value="name", required=false) String name)
    凡是可以通过HTTPServletRequest.getParameter(String)方法取到的值,包含表单提交的、QueryString附带的,都可以使用@RequestParam注解得到
    默认request=true
    QueryString的参数 使用@RequestParam注解, 通过参数获得, 例:
    public Object query(@RequestParam(value="page", required=false)int page)
    Request Header 可以使用@RequestHeader注解获取Request的头信息, 例:
    public ResultJson editCompany(@RequestHeader("user-agent") String userAgent)
    注意: @RequestHeader后面的头名字不区分大小写, 但@RequestParam, @PathVariable等是区分大小写的。
    如果RequestHeader后面不写参数, 会用后面的变量名替代。
    获取cookie值 使用@CookieValue注解,和其他类似,除非为了兼容老现有客户端,新API里不建议使用cookie。
    获取当前的Request & Response 直接写参数, 例
    public Object doSomething(HttpServletRequest request, HttpServletResponse response)
    获取当前用户 直接在方法上增加参数类型, 类型为:
    org.springframework.security.core.Authentication, 例:
    public Student deleteStudent(Authentication auth)参数auth内会储存当前用户信息。
    文件上传 首先要设置consumes为multipart/form-data
    @PostMapping(value = "/files", consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
    在方法中写参数:
    public Map<String, Object> uploadFile(@RequestParam("file")MultipartFile file)
    在方法中就可以直接使用MultipartFile中的流保存文件了。

    以上整理自网易云课堂的葛香东老师所授的课程

  • 相关阅读:
    记我安装Caffe的血泪史(1)
    UWP连接mysql 实现数据远程备份
    数据库性能测试
    性能瓶颈分析定位
    系统安全性测试
    WEB安全性测试点
    jmeter测试报告分析
    Linux常用命令大全
    软件测试入门到飞升上仙之客户端
    软件测试入门到飞升上仙之web 端测试
  • 原文地址:https://www.cnblogs.com/zilongmao/p/10264995.html
Copyright © 2011-2022 走看看