初识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 ...";
​
    }
相关推荐
q***710114 分钟前
Spring Boot(快速上手)
java·spring boot·后端
better_liang2 小时前
每日Java面试场景题知识点之-分布式事务处理
java·微服务·面试·springcloud·分布式事务
q***96584 小时前
Spring Cloud Data Flow 简介
后端·spring·spring cloud
L***d6704 小时前
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
java·数据库·spring boot
凌波粒4 小时前
Springboot基础教程(3)--自动装配原理/静态资源处理/欢迎页
java·spring boot·后端
likuolei4 小时前
XSL-FO 软件
java·开发语言·前端·数据库
凌波粒4 小时前
SpringBoot基础教程(2)--yaml/配置文件注入/数据校验/多环境配置
java·spring boot·后端·spring
S***26754 小时前
Spring Boot环境配置
java·spring boot·后端
6***83054 小时前
什么是Spring Boot 应用开发?
java·spring boot·后端
毕设源码柳学姐5 小时前
计算机毕设 java 智慧社区服务系统 SSM 框架社区生活平台 Java 开发的便民服务与互动系统
java·开发语言·生活