JAVA之Spring MVC 请求与响应 postman简介 REST风格

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第1张图片

SpringMVC是一种基于Java实现MVC模型的轻量级Web框架

使用简单,开发便捷(相比于Servlet)

灵活性强

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第2张图片

入门案例

1.导入依赖SpringMVC坐标


    org.springframework
    spring-webmvc
    5.1.38  //不要使用6及以上,javaxservlet不支持

2.创建配置类文件夹,创建核心配置类

@Configuration
@ComponentScan("com.study.controller") //加载对应文件夹下的bean
public class SpringMvcConfig {
}

创建SpringMVC控制器类(等同于Servlet功能)

设定请求方法的返回值为字符串类型,并返回自定义json数据

@Controller //注解为可供Spring调用的bean
public class UserController {
    @RequestMapping("/save")//定义映射路径
    @ResponseBody  //定义为响应体,告诉系统我不是页面
    public String save(){
        System.out.println("user save ....");
        return "{'info':'springmvc'}"; //将json类型返回
    }
}

在配置文件夹下新建初始化servlet容器文件,加载SpringMVC环境,并设置SpringMVC请求拦截的路径

AbstractDispatcherServletInitializer类是SpringMVC提供的快速初始化Web3.0容器的抽象类

AbstractDispatcherServletInitializer提供三个接口方法供用户实现

public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
    @Override
    //Servlet容器初始化,加载Spring的配置类
创建Servlet容器时,加载SpringMVC对应的bean并放入WebApplicationContext对象范围中,而WebApplicationContext的作用范围为ServletContext范围,即整个web容器范围
    protected WebApplicationContext createServletApplicationContext() {
        AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();
        ctx.register(SpringMvcConfig.class);
        return ctx;
    }

    @Override
设定SpringMVC对应的请求映射路径,设置为/表示拦截所有请求,任意请求都将转入到SpringMVC进行处理
    protected String[] getServletMappings() {
        //表示所有的请求都交给SpringMVC处理
        return new String[]{"/"};
    }

    @Override
如果创建Servlet容器时需要加载非SpringMVC对应的bean,使用当前方法进行,使用方式同createServletApplicationContext()
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }
}

使用Tomcat运行时,如果其他都没有问题,但是运行不出来,可能是tomcat版本太低,

用高一个版本的tomcat就可以解决了

入门案例工作流程分析

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第3张图片

 因为我们SpringMVC只控制表现层的Bean,其他类型的 bean都交给Spring来处理,我们要避免表现层打的bean也被Spring扫到JAVA之Spring MVC 请求与响应 postman简介 REST风格_第4张图片

 JAVA之Spring MVC 请求与响应 postman简介 REST风格_第5张图片

 也就是排除了注解类别为Controller的bean

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第6张图片

 换一下继承的东西,可以简化开发

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第7张图片

postman

postman这款软件可以很好的处理请求与响应,很适合用来测试

请求与响应 

因为我们主要是异步调用,所以主要是json

请求映射路径JAVA之Spring MVC 请求与响应 postman简介 REST风格_第8张图片

映射路径这一块,不同模块可能会有同名的方法,为了区分,我们需要在模块类上加一个映射路径,这样映射路径就成了/user/save 就不会跟/book/save冲突了 

get请求和post请求发送普通参数

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第9张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第10张图片

Post请求中文乱码处理

 JAVA之Spring MVC 请求与响应 postman简介 REST风格_第11张图片

5种类型参数参数传递 

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第12张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第13张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第14张图片

 JAVA之Spring MVC 请求与响应 postman简介 REST风格_第15张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第16张图片

 Json数据传递参数

1.添加json数据转换相关坐标



    
      com.fasterxml.jackson.core
      jackson-databind
      2.9.0
    

2.设置发送json数据(请求body中添加json数据)

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第17张图片

3.开启自动转换json数据的支持

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第18张图片 @EnableWebMvc注解功能强大,该注解整合了多个功能,此处仅使用其中一部分功能,即json数据进行自动类型转换

 4.设置接收json数据

json数据

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第19张图片

 Json数据在请求体中,所以我们的注解换成@RequestBody

json对象

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第20张图片

json数组

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第21张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第22张图片

 日期类型参数传递

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第23张图片

 用@DateTimeFormat来设置读取日期格式

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第24张图片

响应

响应页面

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第25张图片

响应数据

  文本数据

  json数据 

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第26张图片

 响应数据的时候,要用@ResponseBody告诉服务器这个不是页面

数据我们要什么数据 就返回什么类型的数据

REST风格 

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第27张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第28张图片 因为有些资源路径我们是一样的,所以我们通过行为动作来区分相同的访问地址

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第29张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第30张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第31张图片 {id} 为得到输入的id,这样下面的参数则为传过来的id值

 @PathVariable 意思id从路径上取

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第32张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第33张图片

简化REST开发

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第34张图片可以将RequestMapping提取出来到类上

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第35张图片 直接把原本要写的RequstMapping换成对应的方法Maping 这样我们就可以不写method了

但是有些需要传参数的,还是要把参数带上

这样我们就简化完成啦:

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第36张图片

基于RESTFUL页面数据交互

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第37张图片

JAVA之Spring MVC 请求与响应 postman简介 REST风格_第38张图片 因为我们的路径都会被SpringMVC所以我们要设置放行

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