拦截器

218 阅读2分钟

1.拦截器的使用

1.1-实现HandlerInterceptor接口,将拦截器的类注入到spring容器,并且将自定义的拦截器加入到拦截链中

2.拦截器的原理

2.1-目前从搜索到的信息来看,大部分都说是aop的设计思想,以及采用反射的方法。但是个人认为aop的思想是没有那大的体现。主要还是利用反射去调用对应的controller的方法,拦截器是通过在转发请求前,springmvc框架提供的扩展功能。

3.拦截器采用的设计模式

3.1-拦截器采用的设计模式属于责任链模式的一种变种应用。 ####责任链模式本身是一种行为设计模式,允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。 ####拦截器的按照责任链的思路,又添加了对应的返回后,执行每一个已执行拦截器的后置处理方法。

4.拦截器和过滤器的区别

4.1过滤器通常是在 HTTP 请求或响应被处理之前或之后执行的代码块。过滤器可以放置在服务器级、应用级或模块级,可以根据请求或响应的特定属性、状态或内容进行过滤。 过滤器通常是静态的,即在应用程序开发期间编写的代码。

4.2拦截器是在 HTTP 请求或响应被处理时执行的代码块。拦截器可以放置在服务器级、应用级或模块级,可以根据请求或响应的特定属性、状态或内容进行拦截。拦截器通常是动态的,即在应用程序运行时动态编写的代码。 因此,过滤器通常是用于过滤 HTTP 请求或响应的特定属性、状态或内容,而拦截器通常是用于拦截 HTTP 请求或响应的整个生命周期。拦截器可以比过滤器更灵活地处理请求和响应,并且可以在运行时动态地编写和部署。但是,拦截器也有一些缺点,例如可能会在应用程序处理请求时引起性能问题,因为它们在运行时动态地编写和部署代码。因此,在选择使用哪种工具时,需要根据具体情况进行权衡。