• springboot和vue:四、web入门(静态资源访问+文件上传+拦截器)


    静态资源访问

    • 使用IDEA创建Spring Boot项目,会默认创建出classpath:/static/目录,静态资源一般放在这个目录下即可。
    • 如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤策略。
      • 在application.properties中定义过滤规则和静态资源位置。过滤规则为/static/**,静态资源位置为classpath:/static/

    文件上传(前端使用表单上传)

    enctype属性

    表单的enctype属性规定在发送到服务器之前如何编码表单数据。

    • 当表单的enctype=“application/x-www-form-urlencoded”(默认)时,form表单中的数据格式为:key=value&key=value
    • 当表单的enctype="multipart/form-data"时,其传输数据形式如下
      在这里插入图片描述

    后端使用MultipartFile获取上传的文件数据,再通过transferTo方法将其写入到磁盘中

    在这里插入图片描述

    tomcat配置

    • Spring Boot工程嵌入的tomcat默认限制了请求的文件大小,每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。
    • 要更改这个默认值需要在配置文件(如application.properties)中加入两个配置
      spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB

    拦截器

    应用场景

    1. 权限检查:如登录检测。
    2. 性能监控:可以通过拦截器在进入处理程序之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间
    3. 通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有提取Locale、Theme信息等。

    拦截器定义

    Spring Boot定义了HandlerInterceptor接口来实现自定义拦截器的功能

    HandlerInterceptor接口定义了preHandle、postHandle、afterCompletion三种方法,通过重写这三种方法实现请求前、请求后等操作

    在这里插入图片描述
    在这里插入图片描述

    拦截器注册

    • addPathPatterns方法定义拦截的地址
    • excludePathPatterns定义排除某些地址不被拦截
    • 添加的一个拦截器没有addPathPattern任何一个url则默认拦截所有请求
    • 如果没有excludePathPatterns任何一个请求,则默认不放过任何一个请求。

    在这里插入图片描述

  • 相关阅读:
    签个到吧codeforces898
    记录一次存储过程新增测试数据
    js事件循环机制
    Pangolin安装报错解决
    Thread线程类基本使用(下)
    浅谈智能照明控制系统应用在城市轨道交通
    深入浅出DAX:数据分析
    kettle如何设计数据流转逻辑
    C++11 列表初始化都做了什么?
    循环小数(Repeating Decimals, ACM/ICPC World Finals 1990, UVa202)rust解法
  • 原文地址:https://blog.csdn.net/zhiaidaidai/article/details/132950154