初识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 ...";
​
    }
相关推荐
程序媛-徐师姐8 分钟前
Java 基于微信小程序的美食推荐系统(附源码,文档)
java·微信小程序·美食
luoluoal8 分钟前
java项目之校园美食交流系统(源码+文档)
java·mysql·mybatis·ssm·源码
程序媛学姐18 分钟前
SpringCloud消息总线:Bus事件广播与配置动态刷新
java·开发语言
Vic1010122 分钟前
Java 中装饰者模式与策略模式在埋点系统中的应用
java·开发语言·策略模式
m0_7482482322 分钟前
【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南
java·架构·tomcat
小斌的Debug日记24 分钟前
Java面试题及知识点Day1
java·面试
三体世界32 分钟前
C++ STL 序列式容器之(三)-- List
java·c语言·开发语言·c++·windows·list·visual studio
银迢迢33 分钟前
java基础自用笔记:异常、泛型、集合框架(List、Set、Map)、Stream流
java·笔记
爱的叹息36 分钟前
java 设置操作系统编码、jvm平台编码和日志文件编码都为UTF-8的操作方式
java·开发语言·jvm
万亿少女的梦1681 小时前
基于Ebay拍卖网站成交价格的影响因素分析
java·开发语言·网络安全