Web开发进阶教学内容l第一节静态资源访问l第二节文件上传l第三节拦截器静态资源访问n使用IDEA创建SpringBoot项目,会默认创建出classpath:/static/目录,静态资源一般放在这个目录下即可。n如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤策略。n在application.properties中直接定义过滤规则和静态资源位置:n过滤规则为/static/**,静态资源位置为classpath:/static/文件上传原理n表单的enctype属性规定在发送到服务器之前应该如何对表单数据进行编码。n当表单的enctype="application/x-www-form-urlencoded"(默认)时,form表单中的数据格式为:key=value&key=valuen当表单的enctype="multipart/form-data"时,其传输数据形式如下SpirngBoot实现文件上传功能nSpringBoot工程嵌入的tomcat限制了请求的文件大小,每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。n要更改这个默认值需要在配置文件(如application.properties)中加入两个配置SpirngBoot实现文件上传功能n当表单的enctype="multipart/form-data"时,可以使用MultipartFile获取上传的文件数据,再通过transferTo方法将其写入到磁盘中拦截器n拦截器在Web系统中非常常见,对于某些全局统一的操作,我们可以把它提取到拦截器中实现。总结起来,拦截器大致有以下几种使用场景:n权限检查:如登录检测,进入处理程序检测是否登录,如果没有,则直接返回登录页面。n性能监控:有时系统在某段时间莫名其妙很慢,可以通过拦截器在进入处理程序之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间n通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有提取Locale、Theme信息等,只要是多个处理程序都需要的,即可使用拦截器实现。拦截器nSpringBoot定义了HandlerInterceptor接口来实现自定义拦截器的功能nHandlerInterceptor接口定义了preHandle、postHandle、afterCompletion三种方法,通过重写这三种方法实现请求前、请求后等操作拦截器定义naddPathPatterns方法定义拦截的地址nexcludePathPatterns定义排除某些地址不被拦截n添加的一个拦截器没有addPathPattern任何一个url则默认拦截所有请求n如果没有excludePathPatterns任何一个请求,则默认不放过任何一个请求。拦截器注册