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;
    }
相关推荐
编程彩机3 天前
互联网大厂Java面试:从Spring MVC到微服务架构场景解析
java·spring cloud·微服务·分布式事务·spring mvc
她说..3 天前
Java Web 开发:请求头、请求体、响应体 数据获取全攻略(附实战示例)
java·开发语言·spring boot·spring·http·spring mvc
这儿有个昵称14 天前
Java大厂面试实录:从Spring MVC到微服务的技术深度探讨
java·redis·spring·mybatis·spring security·spring mvc·oauth2
这儿有个昵称15 天前
互联网大厂Java面试场景:从Spring MVC到分布式消息队列
spring mvc·java面试·redis缓存·互联网大厂面试·kafka消息队列
linweidong18 天前
中科曙光Java后端开发面试题及参考答案
分布式·设计模式·spring mvc·tcp协议·三次握手·后端开发·java面经
草原印象2 个月前
Spring SpringMVC Mybatis框架整合实战
java·spring·mybatis·spring mvc
沐雨橙风ιε3 个月前
防止表单重复提交功能简单实现
java·spring boot·ajax·axios·spring mvc
HuiSoul2006 个月前
Spring MVC
java·后端·spring mvc
埃泽漫笔6 个月前
什么是 Spring MVC?
spring mvc
曹朋羽6 个月前
spring mvc 整体处理流程原理
java·spring·mvc·spring mvc