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;
    }
相关推荐
xbronze13 天前
【笔记】记一次因Spring版本和Tomcat版本不对应,造成Spring MVC项目启动后页面访问报404的问题
tomcat·spring mvc
茜茜西西CeCe1 个月前
Java程序设计:spring boot(2)
java·开发语言·spring boot·maven·idea·web·spring mvc
太自由1 个月前
浅聊前后端分离开发和前后端不分离开发模式
前端·servlet·spring mvc·thymeleaf·模板引擎·前后端分离开发
LearnTech_1231 个月前
【学习笔记】手写一个简单的 Spring MVC
笔记·学习·spring·spring mvc
胡耀超2 个月前
Spring MVC 执行流程详解
java·spring·mvc·spring mvc
祁思妙想3 个月前
《JavaEE进阶》----4.<SpringMVC①简介、基本操作>
java·开发语言·java-ee·spring mvc
晴栀_mm3 个月前
Spring MVC前后端数据交互
java·spring mvc
bigbearxyz4 个月前
Spring Boot项目的404是如何发生的
java·spring boot·spring mvc
码农爱java5 个月前
Spring MVC 源码分析之 DispatcherServlet#getHandler 方法
java·spring·mvc·spring mvc·源码分析·gethandler
码农爱java5 个月前
Spring MVC 源码分析之 DispatcherServlet#getHandlerAdapter 方法
java·spring·mvc·spring mvc·源码分析·spring mvc 工作流程