SpringMVC---获取参数

文章目录

  • 传递单参数
  • 传递对象
  • 传递多个参数
  • 参数重命名
  • 传递JSON对象
  • 直接从 url 中传递参数 省略变量
  • 上传文件
  • 获取Cookie
  • 获取Header
  • 设置Session
  • 读取Session

传递单参数

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

传递对象

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

传递多个参数

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

参数重命名

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

传递JSON对象

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

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

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

上传文件

@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

@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";
    }
@RequestMapping("/getOneCookie")
    //注:使用spring更简单的得到 单个cookie
    public String getOneCookie(@CookieValue("zhangsan") String val){
        return "cookie +" + val;
    }

获取Header

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

设置Session

@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

@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信息";
        }
    }
@RequestMapping("/getSpringSession")
    //注:使用spring更简单的读取session
    public String getSpringSession(@SessionAttribute(value = "username",required = false) String username){
        return username;
    }

你可能感兴趣的:(JavaEE进阶,spring,mvc)