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

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

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

灵活性强

入门案例

1.导入依赖SpringMVC坐标

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.38</version>  //不要使用6及以上,javaxservlet不支持
</dependency>

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就可以解决了

入门案例工作流程分析

 因为我们SpringMVC只控制表现层的Bean,其他类型的 bean都交给Spring来处理,我们要避免表现层打的bean也被Spring扫到

 

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

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

postman

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

请求与响应 

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

请求映射路径

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

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

Post请求中文乱码处理

 

5种类型参数参数传递 

 

 Json数据传递参数

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

<!--    添加json数据转换相关坐标-->

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>

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

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

 @EnableWebMvc注解功能强大,该注解整合了多个功能,此处仅使用其中一部分功能,即json数据进行自动类型转换

 4.设置接收json数据

json数据

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

json对象

json数组

 日期类型参数传递

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

响应

响应页面

响应数据

  文本数据

  json数据 

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

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

REST风格 

 因为有些资源路径我们是一样的,所以我们通过行为动作来区分相同的访问地址

 {id} 为得到输入的id,这样下面的参数则为传过来的id值

 @PathVariable 意思id从路径上取

简化REST开发

可以将RequestMapping提取出来到类上

 直接把原本要写的RequstMapping换成对应的方法Maping 这样我们就可以不写method了

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

这样我们就简化完成啦:

基于RESTFUL页面数据交互

 因为我们的路径都会被SpringMVC所以我们要设置放行

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值