SpingMvc-Day01

SpringMVC:
表述层作用:1.接受前端参数[SpringMVC简化]
          2.调用业务逻辑
          3.响应前端数据[SpringMVC简化]
SpringMVC组件:
    1.DispatcherServlet:处理全部请求
    2.handlerMapping:缓存handler方法和地址
    3.handlerAdapter:适配器、参数和相应简化
    4.ViewResovler视图解释器:查找视图页面、简化视图查找
    5.handler:处理器,
SpringMVC接收数据:
    1.访问路径设置
        @RequestMapping:将请求的URL地址和处理请求的方式关联起来,建立映射
                 * 1.精准地址/user/log {"地址1","地址2"}
                 * 2.支持模糊 * 任意一层字符串 | **任意层字符串
                 *          /user/*
                 *          /user/**
                 * 3.类上添加@RequestMapping也可以 类下面的方法公共的路径
                 * 4.请求方式指定
                        客户端 -> http(ger | post | put | delete) -> dispatcherServlet - > handler
                        默认情况下:@RequestMapping("login)只要地址正确,任何请求方式都可以访问
                        指定请求方式: 
                            @RequestMapping(value = "/login",method = RequestMethod.POST)
                            @RequestMapping(value = "/register",method = {RequestMethod.GET,RequestMethod.POST})
                            不符合的报405
                        或者直接在方法上加@GetMapping @PostMapping @PutMapping @DeleteMapping
    2.接收参数[重点]
        ①param和json的参数比较
        Param: key=value&key=value
        JSON:  {key:value,key:value}
    ②param参数接收
        1.直接接收
            /param/data?name=root&age=18
            //直接接收 参数=形参
            @RequestMapping("data")
            public String data(String name,int age){
                System.out.println("name = " + name + ", age = " + age);
                return "name = " + name + ", age = " + age;
            }    
        2.使用@RequestParam
            /param/data?account=root&age=18
            public String data1(@RequestParam(value = "account") String username , @RequestParam(required = false,defaultValue = "1") int page){
            @RequestParam:value:将account指定为username
                          required = false 指定非必须传值
                          defaultValue = "1" 设置默认值
        3.特殊场景接收
            ①一值多收
                //一名多值 key=1&key=2 使用集合接收[但要使用@RequestParam]
                //param/data2?hbs=吃&hbs=玩&hbs=学习
                @GetMapping("data2")
                @ResponseBody
                public String data2(@RequestParam List<String> hbs){
                    System.out.println("hbs = " + hbs);
                    return "ok";
            ②使用实体对象接值
                //用户注册(用户信息)  -》 对应的实体类 -》 插入到数据库、表
                //param/data3?name=二狗子&age=18
                // 准备一个对应属性的ger|set方法的实体类对象即可
                // 形参列表
                @RequestMapping("data3")
                @ResponseBody
                public String data3(User user){
                    System.out.println("user = " + user);
                    return user.toString();
                }
            }
        4.路径参数接收
            /user/root/123456
            //动态路径设置{key} = * {key}
            //接收路径参数
            @RequestMapping("{account}/{password}")
            public String login(@PathVariable(value = "account") String username,@PathVariable String password){
                System.out.println("username = " + username + ", password = " + password);
                return "username = " + username + ", password = " + password;
    }

 

posted @ 2024-07-03 01:38  MinyX  阅读(4)  评论(0编辑  收藏  举报