Web开发 请求映射

Web开发

1、SpringMVC自动配置概览

大多场景我们都无需自定义配置

  • 内容协商视图解析器和BeanName视图解析器

  • 静态资源(包括webjars)

  • 自动注册 Converter,GenericConverter,Formatter

  • 支持 HttpMessageConverters (后来我们配合内容协商理解原理)

  • 自动注册 MessageCodesResolver (国际化用)

  • 静态index.html 页支持

  • 自定义 Favicon

  • 自动使用 ConfigurableWebBindingInitializer ,(DataBinder负责将请求数据绑定到JavaBean上)

  • 不用@EnableWebMvc注解。使用 @Configuration WebMvcConfigurer 自定义规则

  • 声明 WebMvcRegistrations 改变默认底层组件

  • 使用 @EnableWebMvc @Configuration DelegatingWebMvcConfiguration 全面接管SpringMVC

2、简单功能分析

新建项目

2.1、静态资源访问

1、静态资源目录
  • 只要静态资源放在类路径下:/static/public/resources/META-INF/resources
  • 访问 : 当前项目根路径/ 静态资源名
原理: 静态映射/**。
请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。
静态资源也找不到则响应404页面
改变默认的静态资源路径
spring:
  mvc:
    static-path-pattern: /res/**
  web:
    resources:
      static-locations: [classpath:/ayan]
2、静态资源访问前缀

默认无前缀

spring:
  mvc:
    static-path-pattern: /res/**

当前项目 static-path-pattern 静态资源名 = 静态资源文件夹下找

3、webjar

自动映射 /webjars/**
https://www.webjars.org/

        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.5.1</version>
        </dependency>

访问地址:http://localhost:8080/webjars/jquery/3.5.1/jquery.js 后面地址要按照依赖里面的包路径

2.2、欢迎页支持

  • 静态资源路径下 index.html

可以配置静态资源路径 但是不可以配置静态资源的访问前缀。否则导致 index.html不能被默认访问

spring:
#  mvc:
#    static-path-pattern: /res/**   这个会导致welcome page功能失效

  resources:
    static-locations: [classpath:/haha/]
  • controller能处理/index

2.3、自定义 Favicon网站图标

favicon.ico 放在静态资源目录下即可。

spring:
#  mvc:
#    static-path-pattern: /res/**   这个会导致 Favicon 功能失效

资源处理的默认规则

spring:
#  mvc:
#    static-path-pattern: /res/**

  resources:
    add-mappings: false   禁用所有静态资源规则

3、请求参数处理

0、请求映射

1、rest使用与原理

  • @xxxMapping;
  • Rest风格支持(使用HTTP请求方式动词来表示对资源的操作)
    • 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户
    • 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改用户 POST-保存用户
    • 核心Filter;HiddenHttpMethodFilter
      • 用法: 表单method=post,隐藏域 _method=put
      • SpringBoot中手动开启
      • 扩展:如何把_method 这个名字换成我们自己喜欢的。
spring:
  mvc:
    hiddenmethod:
      filter:
        enabled: true   #开启页面表单的Rest功能

来源:https://www.icode9.com/content-4-885701.html

(0)

相关推荐