首页 > 其他分享 >Web开发

Web开发

时间:2023-02-24 20:12:22浏览次数:25  
标签:Web 请求 静态 访问 开发 resources 资源 前缀

学习目标(深入Web原理)

  • SpringMVC自动配置
  • 简单功能介绍
  • 请求参数处理
  • 数据影响与内容协商
  • 视图解析与模板引擎
  • 拦截器
  • 跨域
  • 异常处理
  • 原生Servlet
  • 敲入式Web容器
  • 定制化原理

SpringMVC自动配置

  • 内容协商视图解析器和BeanName视图解析器
  • 静态资源(包括webjars)
  • 自动注册(Converter\GenericConverter\Formatter)
  • 支持HttpMessageConverters
  • 自动注册(MessageCodesResolver国际化用)
  • 静态index.html页支持
  • 自定义Favicon
  • 自动使用ConfigurableWebBindingInitializer(DataBinder负责将请求数据绑定到JavaBean上)

简单功能介绍

静态资源访问

  • 1.静态资源目录
    在类路径下有这些目录static或public或resources或META-INF/resources,都可以用于存放图片等静态资源,然后进行访问
    访问方式:当前项目根路径/+静态资源名
    • 1.将资源存放入目录
    • 2.进入网址后缀是访问的资源名称

      访问成功

      为什么可以直接访问静态资源,而不是发起请求?
      做个测试:现在做一个请求,就叫做海上.png

      那么在这样的情况下,是找动态请求,还是找静态资源呢?(如果是动态请求就会返回“aaa”),结果:

      访问静态资源原理:静态映射/**,只需要写资源名就能自动地找资源;请求进来的时候先去找Controller看能不能处理。不能处理的所有请求有都交给静态资源处理器。静态资源就去资源目录找数据;找到,就呈现内容;找不到,就是404
  • 2.静态资源访问前缀
    • 修改静态资源访问路径:在配置文件中,利用spring.mvc.static-path-pattern=/自定义前缀名/**
      修改静态资源访问路径的应该用场景:写了一个web应用,里面有很多的静态资源还有很多动态请求,以及拦截器,比如登录拦截器等等,登陆以后才能够进行动态的请求,没有登陆就会拦截所有/*的访问,但其实有时候一些资源不需要登陆以后才能访问,所以就在资源前加一个前缀,然后让拦截器放行指定前缀的访问
      默认无前缀(即:/**)

      通过在配置文件中利用spring.mvc.static-path-pattern=/自定义前缀名/*
      指定即可

      配置过后,就可以对静态资源进行访问,访问路径就是/res/资源名
    • 指定静态资源文件
      指定过后,就用这个指定的文件存放静态资源
      指定方式:spring.resources.static-locations: classpath: [/文件名/]
      指定之后,就无法再访问其他目录下的静态资源了

欢迎页支持(欢迎页放到静态资源下,服务器加端口号访问时所呈现的页面,使用欢迎页,必须使用/**的映射方式)

springboot支持两种方式的欢迎页:1.static;2.模板

  • 1.给静态资源路径下放一个index.html

    • 可以配置静态资源路径
    • 但是不乐意配置静态资源的访问前缀,否则导致index.html不能被默认访问
  • 2.编写controller能够处理/index

自定义Favicon

每个网站访问前的访问图标,将图标放到静态资源文件下,将图标命名为:favicon.ico即可,访问时会自定识别加载
如果不能加载注意浏览器禁用缓存要勾选上;并且在第一次加载时,要更换浏览器

静态资源配置原理

  • SpringBoot启动默认加载xxxAutoConfiguration类(自动配置)
  • SpringMVC自动配置类WebMvcAutoConfiguration,生效
  • 给容器中配置了什么?
    • HiddenHttpMethodFilter兼容Rest风格,表单提交get等请求
    • OrderedFormContentFilter表单内容过滤器
  • 配置文件的相关属性和什么进行了绑定
    • WebMvcProperties与spring.mvc进行了绑定
    • ResourceProperties与spring.resources进行了绑定

配置类只有一个有参构造器

有参构造器中所有参数的值,都会从容器中确定

资源处理的默认规则

默认可以访问静态资源
resources.add-mappings: true;当属性值为false时,所有的静态资源配置都不生效,任何资源都无法被访问
静态资源可以配缓存,resources.cache.period: 100;这是以秒为单位的,默认资源存储100秒;这个的作用是,在这个时间之内,如果在来访问这个数据,就不要再发送请求了,而是直接将这个数据从缓存中调出来

欢迎页的处理规则

HandlerMapping:处理器映射。保存了每一个handler能处理那些请求

标签:Web,请求,静态,访问,开发,resources,资源,前缀
From: https://www.cnblogs.com/hezhipeng/p/16985985.html

相关文章