SpringMVC---获取参数

文章目录

传递单参数

java 复制代码
@RequestMapping("/name")
    //1. 传递参数
    //注:传参的时候一定要传递包装类型而非基础类型   因为基础类型忘写值时会直接报错  包装类型不会报错只会返回空null
    //注:名字必须匹配
    public String getName(String name){
        String retName = name;
        return retName;
    }

传递对象

java 复制代码
@RequestMapping("/people")
    //2. 传递对象
    //注:参数名和对象里的变量名必须一致   个数和顺序可以不同
    public String getPeople(User user){
        return user.toString();
    }

传递多个参数

java 复制代码
@RequestMapping("/names")
    //3. 传递多个参数
    //注:参数名必须一致  参数的顺序可以不一致
    public String getNames(String name1,String name2){
        String firstName = name1;
        String secName = name2;
        return name1 + " " + name2;
    }

参数重命名

java 复制代码
@RequestMapping("/rename")
    //4.重命名
    //注:@RequestParam() 括号里填前端传来的参数(字符串)
    //注:加上这个注解@RequestParam()之后,  括号里写的参数前端就必须传递过来  如果前端不传递就会报错
    //注:加上这个注解@RequestParam()之后,  想让括号里写的参数也不一定必须传递  就可以这样设置@RequestParam(value = "time", required = false)
    public String rename(@RequestParam("haha")String name){
        return name;
    }

传递JSON对象

java 复制代码
@RequestMapping("/getJSON")
    //5. 传递JSON对象
    //注:只有使用@RequestBody注解修饰才能得到JSON对象   一般用对象接收
    public String getJson(@RequestBody User user){
        return user.toString();
    }

直接从 url 中传递参数 省略变量

java 复制代码
@RequestMapping("/getMsg/{username}/{password}")
    //6.直接从url中传递参数  省去传递的变量名
    //注:/{}不能省略    {}里的内容和@PathVariable 括号里的内容应该一致
    //前端在传递数据的时候,在正常的 url 后面使用 / 加上要传递的信息
    public String getMsg(@PathVariable("username") String username,@PathVariable("password") String password){
        return username + " " + password;
    }
java 复制代码
@RequestMapping("/getOtherMsg/{username}/and/{password}")
    //注:不使用{}包裹的内容不会当作参数接收  但是也得写上  用来占位
    public String getOtherMsg(@PathVariable("username") String username,@PathVariable("password") String password){
        return username + " " + password;
    }

上传文件

java 复制代码
@RequestMapping("/upFile")
    //7.上传文件
    //注; @RequestPart  括号里写上传文件时  key里写的文件名
    public String upFile(@RequestPart("myfile")MultipartFile file) throws IOException {
        String path = "D:/home/ruoyi/result.png";
        file.transferTo(new File(path));
        return path;

//        //根路径
//        String root = "D:/home/ruoyi";
//        //根路径 + 唯一的文件名       使每次都能保存不同的文件  而  不替换
//        root += UUID.randomUUID().toString().replace("-","");
//        //根路径 + 唯一的原来文件名           每次都保存原来文件的名字  不重命名
//        root += file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
    }

获取Cookie

java 复制代码
@RequestMapping("/getCookie")
    //8. 传统的得到Cookie
    //注:使用servlet
    public String getCookie(HttpServletRequest request){
        Cookie[] cookies = request.getCookies();
//        for (Cookie cookie : cookies){
//            log.error(cookie.getName() + ":" + cookie.getValue());
//        }
        return "getCookie";
    }
java 复制代码
@RequestMapping("/getOneCookie")
    //注:使用spring更简单的得到 单个cookie
    public String getOneCookie(@CookieValue("zhangsan") String val){
        return "cookie +" + val;
    }

获取Header

java 复制代码
@RequestMapping("/getHeader")
    //9. 传统的得到单个header
    //注:使用servlet
    public String getHeader(HttpServletRequest request){
        String userAgent = request.getHeader("User-agent");
        return userAgent;
    }
java 复制代码
@RequestMapping("/getSpringHeader")
    //注:使用spring得到单个header
    public String getSpringHeader(@RequestHeader("User-Agent") String userAgent){
        return userAgent;
    }

设置Session

java 复制代码
@RequestMapping("/setSession")
    //10. 设置session
    //注:servlet和spring设置的方法一样  都是通过HttpServletRequest设置
    public String setSession(HttpServletRequest request){
        HttpSession session = request.getSession(true);
        if (session != null){
            session.setAttribute("username","spring");
        }
        return (String) session.getAttribute("username");
    }

读取Session

java 复制代码
@RequestMapping("/getSession")
    //11. 读取session
    //注:普通的使用servlet读取
    public String getSession(HttpServletRequest request){
        HttpSession session = request.getSession(false);
        if (session != null && session.getAttribute("username") != null){
            return (String) session.getAttribute("username");
        }else {
            return "无session信息";
        }
    }
java 复制代码
@RequestMapping("/getSpringSession")
    //注:使用spring更简单的读取session
    public String getSpringSession(@SessionAttribute(value = "username",required = false) String username){
        return username;
    }
相关推荐
HuiSoul2007 天前
Spring MVC
java·后端·spring mvc
埃泽漫笔8 天前
什么是 Spring MVC?
spring mvc
曹朋羽17 天前
spring mvc 整体处理流程原理
java·spring·mvc·spring mvc
张小洛1 个月前
Spring IOC容器在Web环境中是如何启动的(源码级剖析)?
java·spring·spring mvc·web容器·spring ioc·servlet容器·spring web容器
迢迢星万里灬2 个月前
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术点解析
java·spring boot·spring·mybatis·spring mvc·面试指南
迢迢星万里灬2 个月前
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
java·spring boot·spring·mybatis·spring mvc·面试指南
冷心笑看丽美人2 个月前
Spring MVC 之 异常处理
java·开发语言·java-ee·spring mvc
迢迢星万里灬3 个月前
Java求职者面试:Spring、Spring Boot、Spring MVC与MyBatis技术深度解析
java·spring boot·spring·面试·mybatis·spring mvc
pwzs4 个月前
Spring MVC 执行流程全解析:从请求到响应的七步走
java·后端·spring·spring mvc
Foyo Designer5 个月前
【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的 RESTful API 设计:从上手到骨折
spring boot·spring·restful·spring mvc·async·crossorigin