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"时,其传输数据形式如下
    springboot和vue:四、web入门(静态资源访问+文件上传+拦截器)_第1张图片

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

springboot和vue:四、web入门(静态资源访问+文件上传+拦截器)_第2张图片

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三种方法,通过重写这三种方法实现请求前、请求后等操作

springboot和vue:四、web入门(静态资源访问+文件上传+拦截器)_第3张图片
springboot和vue:四、web入门(静态资源访问+文件上传+拦截器)_第4张图片

拦截器注册

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

springboot和vue:四、web入门(静态资源访问+文件上传+拦截器)_第5张图片

你可能感兴趣的:(spring,boot,vue.js,后端,java,springboot)