【Java技术路线】9. Spring MVC

Spring MVC

1.MVC 概念

MVC 全称:Model 模型、 View 视图、 Controller 控制器。
MVC 最早出现在JavaEE中的Web层,它能够有效的规划Web层的代码有效分离,降低耦合。
View视图:负责数据和前端的显示,不接收与显示数据无关的代码,方便程序员和美工的分工合作—JSP/HTML。
Controller控制器:只负责接收请求,调用业务层的代码处理请求,然后派发页面,是一个“调度者”的角色——Servlet。转到某个页面。或者是重定向到某个页面。
Model模型:将业务逻辑相关的数据封装为具体的JavaBean类,其中没有任何与数据处理相关的代码——JavaBean/domain/entity/pojo/vo/po。

Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

2.Spring MVC的配置

此部分内容见网络。

3. 路径映射

@RequestMapping 注解
该注解可以将请求映射到控制器,也就是可以建立请求 URL 和处理请求方法之间的对应关系。该注解可以用在类上也可以用在方法上。

@Controller
@RequestMapping("/user")
public class HelloController {
    @RequestMapping(path = "/hello",method = {RequestMethod.POST})
    public String sayHello(){
        System.out.println("Hello Spring MVC");
        return "success";
    }
}

除了@requestMapping 注解之外,spring MVC还有@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping等组合路径映射的注解。

@Controller
@RequestMapping("/user")
public class HelloController {

    @GetMapping("/hello")
    public String sayHello(){
        System.out.println("Hello Spring MVC");
        return "success";
    }
}

使用 @RequestMapping 来映射根路径,使用组合注解(如 @GetMapping )来映射对应的方法。

4. 参数传递

普通传参
url地址传参,地址参数名与形参变量名相同,定义形参即可接收参数


    //普通参数:请求参数与形参名称对应即可完成参数传递
    @RequestMapping("/commonParam")
    @ResponseBody
    public String commonParam(String name ,int age){
        System.out.println("普通参数传递 name ==> "+name);
        System.out.println("普通参数传递 age ==> "+age);
        return "{'module':'common param'}";
    }

url地址传参,地址参数名与形参变量名不同,使用@RequestParam绑定参数关系
@PequestParam

@RequestMapping("demo")
public String demo(Model model
    // 走默认装配规则,参数名称和名字一致,选传
    ,String name
     // 参数名称和名字默认一直,必传参数,不传报错
    ,@RequestParam String name0
    // 通过value属性定义名称,必传参数,不传报错
    ,@RequestParam(value = "name1") String name1
     // 通过name属性定义,非必传参数
    ,@RequestParam(name = "name2",required = false) String name2
     // 通过value属性定义,必传参数,有默认值,可以不传自动赋值
    ,@RequestParam(value = "name3",defaultValue = "t3") String name3
    // 自定义参数名字,不必加name或者value属性,必传
    ,@RequestParam("name444") String name4
){
    System.out.println("name:"+name);
    System.out.println("name0:"+name0);
    System.out.println("name1:"+name1);
    System.out.println("name2:"+name2);
    System.out.println("name3:"+name3);
    System.out.println("name4:"+name4);
    return "hello";
}


@RequestBody 通过对象来传递参数


@ResponseBody
@PostMapping("demo22")
public Demo demo22(@RequestBody Demo demo){
    System.out.println("demo:"+demo);
    return demo;

5. 实现REST

REST风格:
直接通过请求方法来对应CRUD操作
新增:/order POST
修改: /order/1 PUT 指定要修改的id
获取:/order/1 GET
删除: /order/1 DELETE

REST实现
在REST风格中,GET用来获取资源,POST用来新建资源,PUT用来更新或新建资源,DELETE用来删除资源。
具体实现和配置参考这篇博文:
https://blog.csdn.net/deargua/article/details/51556570

你可能感兴趣的:(JAVA学习,java,spring,mvc)