SpringMVC开发 知识点速查

SpringMVC入门

什么是SpringMVC

  • 实现MVC设计模式的框架

SpringMVC核心组件

  • DispatcherServlet 前置控制器,调度
  • Handler 处理器,完成具体业务逻辑
  • HandlerMapping 将请求映射到Handler,映射
  • HandlerInterceptor 处理器拦截器
  • HandlerExcutionChain 处理器执行链,拦截器
  • HandlerAdapter 处理器适配器,转换
  • ModelAndView 装载模型数据和视图信息
  • ViewResolver 视图解析器,渲染给客户端
SpringMVC实现流程
  1. 客户端请求被DispatcherServlet接收
  2. DispatcherServlet将请求映射到Handler
  3. 生成Handler和HandlerInterceptor
  4. 返回HandlerExecutionChain(Handler+HandlerInterceptor)
  5. DispatcherServlet通过HandlerAdapter执行Handler
  6. 返回一个ModelAndView
  7. DispatcherServlet通过ViewResolver进行解析
  8. 返回填充了模型数据的View,响应给客户端
SpringMVC开发 知识点速查_第1张图片
image

SpringMVC深入使用

  • 只需手动编写handler,view
  • 基于XML配置的使用
    • SpringMVC基础配置
    • XML配置controller,HandlerMapping组件映射
    • XML配置VIewResolver组件映射
  • 基于注解

开发步骤:

  • 配置web.xml



  Archetype Created Web Application

  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
    
      forceEncoding
      true
    
  
  
    encodingFilter
    /*
  

  
    default
    *.css
  

  
    springmvc
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:springmvc.xml
    
  
  
    springmvc
    /
  
  

  • 配置扫描注解
 
 
 
 
        
        
    
  • 开始用注解@controller等等开发,返回值是ModelAndView

RESTful风格

  • REST:Representational State Transfer(表述性状态转移)
  • REST是一组架构约束和原则,符合这组约束和原则的架构就是REST架构
  • RESTful核心内容:
    • 资源URI
    • 资源表述:资源在客户端和服务器之间传输
    • 状态转移:资源在服务端变化
  • RESTful架构特点:
    • 统一了客户端访问资源的接口
    • url简介易懂易扩展
    • 有利于不同系统之间的资源共享
  • RESTful是HTTP的四种操作
    • GET获取
    • POST新建
    • PUT修改
    • DELETE删除
  • RESTful开发风格举例
    • 查询课程:http://localhost:8080/course/{id} method='GET'
    • 添加课程:http://localhost:8080/course method='POST'
    • 删除课程:http://localhost:8080/course method='DELETE'
    • 修改课程:http://localhost:8080/course method='PUT'
  • 使用SpringMVC开发注意在web.xml配置支持PUT和DELETE
  
    hiddenHttpMethodFilter
    org.springframework.web.filter.HiddenHttpMethodFilter
  

  
    hiddenHttpMethodFilter
    /*
  

SpringMVC数据绑定

  • 数据绑定:将HTTP请求中的参数绑定到Handler业务方法的形参
  • 原理:HandlerAdapter->HttpMessageConverter->Handler
  • 常用的数据绑定类型:
    • 基本数据类型 @RequestParam(value='form表单里的键名') int form表单里的键名
    • 包装类(可为null) @RequestParam(value='form表单里的键名') Integer form表单里的键名
    • 数组 String[] name
    • 对象 Course name
    • 集合(List, Set, Map)
      • List CourseList class CourseList{List courseList;}
      • Map CourseList class CourseMap{Map courses;}
      • Set CourseSet class CourseSet{Set courses;}
    • JSON @RequestBody支持JSON格式
  • @ResponseBody是字符串返回

SpringMVC拦截器和过滤器

SpringMVC拦截器和过滤器的区别

  • 拦截器是使用JDK动态代理实现的,拦截的是对应调用方法的拦截,属于Spring,可以用Spring特性。是面向切面编程(AOP)的一种运用。只能对controller请求进行拦截。多个拦截器执行顺序也是xml中顺序,preHandle顺序,postHandle和afterCompletion反序。
  • 过滤器是使用Filter实现的,拦截的是Request对象,依赖于servlet容器。多个过滤器的执行顺序跟xml文件中定义的先后关系有关
    SpringMVC开发 知识点速查_第2张图片
    执行顺序

拦截器


    

        
            
            
        

        
            
            
            
             
            
            
            
            
        
    

关于我:

linxinzhe,全栈工程师,目前供职于某世界500强银行的金融科技部门(人工智能,区块链)。

GitHub:https://github.com/linxinzhe

欢迎留言讨论,也欢迎关注我~
我也会关注你的哦!

你可能感兴趣的:(SpringMVC开发 知识点速查)