Spring MVC的拦截器(Interceptor)和Filter不同,但是也可以实现对请求进行预处理,后处理。先介绍它的使用,只需要两步。。。
Filter,它使用户可以改变一个request和修改一个response。Filter 不是一个servlet,它不能产生一个response,但它能够在一个request到达servlet之前预处理request,也可以在离开servlet时处理response。换种说法,filter其实是一个”servlet chaining”(servlet 链)。
拦截器它是链式调用,一个应用中可以同时存在多个拦截器Interceptor
, 一个请求也可以触发多个拦截器 ,而每个拦截器的调用会依据它的声明顺序依次执行。
这个很重要,注意在shiro或者springsecurity配置安全相关的时候,如果异常无法捕获,往往就是web请求顺序导致的,
比如你配置了全局异常,但是异常请求如果没有到达controller层,那么全局异常依然无法捕捉到这类异常,因为请求都没有发到控制层(servlet那一层),
在Filter层已经报权限不足异常那么直接就返回了,所以在前后端分离传递jwt配置的token校验时,如果异常返回的403无法以想要的json3段式或者4段式返回。
同样AOP日志也是无法捕获的,包括各种增强,连环绕增强都无法捕获这个安全框架的403异常
使用 jQuery 的工厂函数$():$(html);
会根据传入的 html 标记字符串创建一个DOM 对象,并把这个DOM 对象包装成一个jQuery 对象返回。
在一次Response写入header和cookie的时候,发现部分信息没有被输出
目前流行的接口形式,数据类型基本都是json格式,很少使用xml格式进行数据传输。
在网站seo时,常常会用到sitemap,常用的形式就是xml格式。
Result
当需要在Spring Boot中引用其他的.yml
文件时,需要在application.yml
里配置:
spring: profiles: include: email,xmyb