
Java配置拦截器
Java配置拦截器
拦截器的概念

- 浏览器发送一个请求会先到Tomcat的web服务器
- Tomcat服务器接收到请求以后,会去判断请求的是静态资源还是动态资源
- 如果是静态资源,会直接到Tomcat的项目部署目录下去直接访问
- 如果是动态资源,就需要交给项目的后台代码进行处理
- 在找到具体的方法之前,我们可以去配置过滤器(可以配置多个),按照顺序进行执行
- 然后进入到到中央处理器(SpringMVC中的内容),SpringMVC会根据配置的规则进行拦截
- 如果满足规则,则进行处理,找到其对应的controller类中的方法进行执行,完成后返回结果
- 如果不满足规则,则不进行处理
- 这个时候,如果我们需要在Controller方法执行的前后添加某些处理,具体该如何来实现?
这个就是拦截器要做的事。
拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行
作用:在指定的方法调用前后执行预先设定的代码阻止原始方法的执行
总结:拦截器就是用来做增强
看完以后,大家会发现
拦截器和过滤器在作用和执行顺序上也很相似
所以这个时候,就有一个问题需要思考:
拦截器和过滤器之间的区别是什么?归属不同:Filter属于Servlet技术,Interceptor属于SpringMVC技术
拦截内容不同:Filter对所有访问进行增强,Interceptor仅针对SpringMVC的访问进行增强
拦截器使用
步骤一:创建拦截器
创建的拦截器类继承HandlerInterceptor的三个方法
preHandle:原始方法调用前执行的内容
postHandle:原始方法调用后执行的内容
afterCompletion:原始方法调用完成后执行的内容
1 |
|

步骤二:配置拦截器类
1 |
|
第一段拦截器:addResourceHandlers 方法用于配置静态资源的处理。这里,所有以 /pages/ 开头的请求路径(通过 /pages/** 通配符匹配)都会被映射到应用服务器上的 /pages/ 目录下。这样,当用户请求 /pages/somefile.html 时,Spring MVC会在 /pages/ 目录下查找 somefile.html 文件,并返回给客户端
第二段拦截器:addInterceptors 方法用于注册请求拦截器。这里,projectInterceptor 是一个已经定义好的拦截器实例(没有在提供的代码段中定义),它会被添加到拦截器注册表中,并且只拦截那些请求路径匹配 /books 的请求。这意味着,当请求路径为 /books 或 /books/someSubPath 等时,projectInterceptor 会被触发,执行其预定义的拦截逻辑(比如检查用户权限、记录日志等)。
- 感谢你赐予我前进的力量






