SpringBoot:SpringMVC(下)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

接着上一篇的mvc(上),下面继续接着写,上篇回顾,讲到了
a. @RequestMapping: 路由映射
b. @RequestParam: 后端参数重命名
c. @RequestBody: 接收JSON类型的参数
这三个类注解,接下来开启新篇


提示:以下是本篇文章正文内容,下面案例可供参考

一、@RequestBody补充

public class UserInfo {
    private Integer id;
    private String username;
    private Integer age;

    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", age=" + age +
                '}';
    }


    public Integer getId() {
        return id;
    }

    public String getUsername() {
        return username;
    }
    public Integer getAge() {
        return age;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}
@RequestMapping("/r6")
    public String r6(@RequestBody UserInfo userInfo){
        return userInfo.toString();
   }

这里就是再补充一下中Java对象转json的写法

public class JSONUtils {
    public static void main(String[] args) throws JsonProcessingException {
        ObjectMapper objectMapper = new ObjectMapper();
        UserInfo userInfo = new UserInfo();
        userInfo.setUsername("zhangsan");
        userInfo.setAge(18);
        userInfo.setId(10);
        //对象转json
        String s = objectMapper.writeValueAsString(userInfo);
        System.out.println(s);
        UserInfo userInfo1 = objectMapper.readValue(s,UserInfo.class);
        System.out.println(userInfo1);


    }
}

在这里插入图片描述
第一行就是转成的json格式
然后把这个复制到postman中

{"id":10,"username":"zhangsan","age":18}

requestbody是body并且是json格式
在这里插入图片描述
在这里插入图片描述
然后就可以了

二、@PathVariable

这个就是修改url的路径
我演示一下

 @RequestMapping("/r7/{name}/{age}")
   public String r7(@PathVariable String name,@PathVariable Integer age){
        return "name:"+name+"age:"+age;
   }

在这里插入图片描述

三.@RequestPart:

@RequestMapping("/r9")
    public String r9(@RequestPart MultipartFile file) throws IOException {
        String filename = file.getOriginalFilename();
        file.transferTo(new File("D:/images/"+filename));
        return filename;
   }

在这里插入图片描述
在这里插入图片描述
这个这样子写别忘了

四.@ResponseBody

这个二记住一下@RestController = @Controller + @ResponseBody

五.@CookieValue,@SessionAttribute,@RequestHeader

@CookieValue: 从Cookie中获取值
@SessionAttribute: 从Session中获取值
@RequestHeader: 从Header中获取值

public class RequestController {
    @RequestMapping("/getCookie")
    public String getCookie(HttpServletRequest request){
        Cookie[] cookies = request.getCookies();
//        Arrays.stream(cookies).forEach(x -> System.out.println(x.getName()+":"+x.getValue()));
        if (cookies!=null){
            for (Cookie c:cookies) {
                System.out.println(c.getName()+":"+c.getValue());
            }
            return "获取cookie成功";
        }
        return "获取失败";
    }
    @RequestMapping("/getCookie2")
    public String getCookie2(@CookieValue("bite")String bite){
        return "bite"+bite;
    }
    @RequestMapping("/setSession")
    public String setSession(HttpServletRequest request){
        HttpSession session = request.getSession();
        session.setAttribute("userName","wangwu");
        return "设置session成功";

    }
    @RequestMapping("/getSession")
    public String getSession(HttpServletRequest request){
        HttpSession session = request.getSession();
        String username = (String) session.getAttribute("username");
        return "登录用户"+username;
    }
    @RequestMapping("/getSession2")
    public String getSession(HttpSession session){
        String username = (String) session.getAttribute("userName");
        return "登录用户:"+username;
    }
    @RequestMapping("/getSession3")
    public String getSession(@SessionAttribute("userName")String username){
        return "登录用户:"+username;
    }
    @RequestMapping("/getHeader")
    public String getHeader(HttpServletRequest request){
        String userAgent = request.getHeader("User-Agent");
        return "userAgent:"+userAgent;
    }
}

个人感觉还是HttpServletRequest 更加通用,当然了setsession还是得session.setAttribute

相关推荐

  1. list<span style='color:red;'>下</span>

    list

    2024-04-27 00:22:01      44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 00:22:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 00:22:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 00:22:01       82 阅读
  4. Python语言-面向对象

    2024-04-27 00:22:01       91 阅读

热门阅读

  1. CSR、SSR与同构渲染全方位解析

    2024-04-27 00:22:01       31 阅读
  2. 交换机的八大功能

    2024-04-27 00:22:01       32 阅读
  3. 授人以渔 选购篇十二:路由器选购要点

    2024-04-27 00:22:01       34 阅读
  4. 4 -26

    4 -26

    2024-04-27 00:22:01      29 阅读
  5. 部署一个自己的GPT客户端[以ChatGPT-Next-Web为例]

    2024-04-27 00:22:01       36 阅读
  6. NumPy 1.26 中文官方指南(四)

    2024-04-27 00:22:01       27 阅读
  7. MySQL查出时间比实际晚8小时的解决方案

    2024-04-27 00:22:01       26 阅读
  8. Android ViewModel使用模板

    2024-04-27 00:22:01       35 阅读
  9. 【小浩算法cpp题解】合并两个有序链表(21)

    2024-04-27 00:22:01       34 阅读
  10. nvm 错误

    2024-04-27 00:22:01       30 阅读
  11. 展开说说:Android动画使用

    2024-04-27 00:22:01       27 阅读
  12. 什么是裸金属服务器?

    2024-04-27 00:22:01       36 阅读