初识Spring MVC

1.SpringMVC相关概念

1.1SpringMVC简介

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

SpringMVC主要负责的就是

  • controller如何接收请求和数据.

  • 如何将请求和数据转发给业务层

  • 如何将响应数据转换成json发回到前端

    SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 优点 使用简单、开发便捷(相比于Servlet) 灵活性强

    demo1

    复制代码
    //
    public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
        @Override
        protected WebApplicationContext createServletApplicationContext() {
            AnnotationConfigWebApplicationContext aw =new AnnotationConfigWebApplicationContext();
            aw.register(SpringMvcConfig.class);
    ​
            return aw;
        }
    ​
        @Override
        protected String[] getServletMappings() {
            return new String[]{"/"};
        }
    ​
        @Override
        protected WebApplicationContext createRootApplicationContext() {
            return null;
        }
    }
    ​
    ​
    @Configuration
    @ComponentScan("com.scidag.controller")
    public class SpringMvcConfig {
    ​
    }
    ​
    @Controller
    public class UserController {
        @RequestMapping("/save")
        @ResponseBody
        public String save(){
            System.out.println("user ..save");
            return "{'info springmvc'}";
        }
    ​
    }
    ​
1.2请求与响应
1.2.1请求路径设置

当多个请求路径相同时,会报错此时采用规范请求

复制代码
@Controller
@RequestMapping("/book")
public class BookController {
    @RequestMapping("/save")
    @ResponseBody
    public String BookSave(){
        System.out.println("book save ..");
        return  "{book save}";
    }
}
​
1.2.2响应
复制代码
  @RequestMapping("/tojsonpojo")
    @ResponseBody
    public User tojsonpojo(){
        User user =new User();
        user.setName("scidag");
        user.setAge(16);
        return  user;
    }
1.3REST风格

REST(Representational State Transfer),表现形式状态转换。

优点:

隐藏资源的访问行为,无法通过地址得知对资源是何种操作书写简化

对于

复制代码
  @RequestMapping(value = "/users",method = RequestMethod.POST)
    @ResponseBody
    public String save(){
        System.out.println("user save " ) ;
        return "modele : user save";
    }

这种方式太过于繁琐,所以使用了Rest风格

将上面代码改为

复制代码
  
@RestController  //  @Controller+ @ResponBody
@RequestMapping ("/books")
public class UserController {
    @PostMapping  
    public String save(){
            ...
    }
}

通过这种方式提升了代码的简洁性

2.使用PostMan工具发送请求和数据

2.1简单参数

以上是get请求

设置springmvc参数乱码问题 ,在配置类中重写这个方法

复制代码
   @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter ce=new CharacterEncodingFilter();
        ce.setEncoding("UTF-8");
        return  new Filter[]{ce};
    }
2.2复杂参数
复制代码
 使用之前在config中加@EnableWebMvc
 
 
 @RequestMapping("/parmpojo")
    @ResponseBody
    public String UserPojo(User user){
​
        System.out.println("pojo 参数--》" +user);
        return  "parmpojo ...";
    }
    @RequestMapping("/parmpojoandpojo")
    @ResponseBody
    public String UserPojo2(User user){
        System.out.println("pojo and pojo ->>" +user);
        return "pojo and pojo ...";
    }
    @RequestMapping("/parmarr")
    @ResponseBody
    public String UserArray(String []like){
        System.out.println(Arrays.toString(like));
        return "userarray ...";
​
    }
    @RequestMapping("/parmlist")
    @ResponseBody
    public String UserArray( @RequestParam List<String> like){
        System.out.println(like);
        return "userlsit ...";
​
    }
相关推荐
专注API从业者几秒前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库
摇滚侠17 分钟前
DBeaver 导入数据库 导入 SQL 文件 MySQL 备份恢复
java·数据库·mysql
keep one's resolveY41 分钟前
SpringBoot实现重试机制的四种方案
java·spring boot·后端
天空属于哈夫克31 小时前
企业微信API常见的错误和解决方案
java·数据库·企业微信
摇滚侠2 小时前
VMvare 虚拟机 Oracle19c 安装步骤,远程连接 Oracle19c,百度网盘安装包
java·oracle
梁萌2 小时前
idea报错找不到XX包的解决方法
java·intellij-idea·启动报错·缺少包
Agent产品评测局2 小时前
生产排期与MES/ERP系统打通,实操方法详解 —— 2026企业级智能体自动化选型与实战指南
java·运维·人工智能·ai·chatgpt·自动化
阿丰资源3 小时前
基于Spring Boot的电影城管理系统(直接运行)
java·spring boot·后端
呱牛do it3 小时前
企业级门户网站设计与实现:基于SpringBoot + Vue3的全栈解决方案(Day 8)
java
消失的旧时光-19434 小时前
Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包
java·spring boot·后端·aop·自定义注解