• 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任何一个请求,则默认不放过任何一个请求。

    在这里插入图片描述

  • 相关阅读:
    IDEA翻译插件Translation报错 -> 更新 TKK 失败,请检查网络连接问题,已解决
    【精通内核】计算机程序的本质、内存组成与ELF格式深度解析
    Android 属性动画ValueAnimator整理
    动态数据模型分析与应用
    阿里云OSS对象存储
    Vue父组件给子组件传参数
    新版Android Studio中设置gradle的JDK版本
    Wise Care 365 Pro v6.3.9.617 系统优化软件
    tensorRT模型推理时动态shape
    MHA高可用
  • 原文地址:https://blog.csdn.net/zhiaidaidai/article/details/132950154