HandlerInterceptor 会拦截静态资源命
时间: 2023-07-22 14:41:10 浏览: 85
是的,`HandlerInterceptor`会拦截静态资源请求。因为`HandlerInterceptor`会拦截所有请求,包括静态资源请求。但是我们可以通过配置`InterceptorRegistry`来排除某些静态资源请求,从而让`HandlerInterceptor`不再拦截这些静态资源请求。
具体实现代码如下:
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor())
.excludePathPatterns("/static/**") // 排除静态资源请求
.addPathPatterns("/**");
}
}
```
在上述代码中,我们使用`excludePathPatterns()`方法来排除静态资源请求,其中`/static/**`是指静态资源的访问路径。这样就可以让`HandlerInterceptor`不再拦截这些静态资源请求了。
相关问题
HandlerInterceptor 放过静态资源
HandlerInterceptor可以拦截请求并对其进行处理,因此它可以选择是否放过静态资源。为了放过静态资源,可以在HandlerInterceptor的preHandle方法中进行逻辑判断。一种常见的做法是通过判断请求的URL是否以特定的静态资源目录为前缀来实现。举例来说,如果静态资源惯例地放在"classpath:/static/"目录下,那么可以在preHandle方法中判断请求的URL是否以"/static/"开头,如果是,则直接放过该请求,不做任何处理。这样就可以让HandlerInterceptor放过静态资源,只拦截其他类型的请求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Spring Boot自定义拦截器之后静态资源无法加载的问题(第一版)](https://download.csdn.net/download/weixin_38718415/14044635)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [springboot二:过滤器、拦截器、静态资源访问](https://blog.csdn.net/Alnsx/article/details/113918949)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
HandlerInterceptor 忽略静态资源
在Spring Boot中,可以通过配置HandlerInterceptor来拦截请求并进行相应的处理。默认情况下,HandlerInterceptor会拦截所有的请求,包括静态资源的请求。但是在某些情况下,我们可能希望HandlerInterceptor忽略对静态资源的拦截。
一种常见的解决方法是通过配置WebMvcConfigurer来实现。具体步骤如下:
1. 创建一个类并实现WebMvcConfigurer接口。
2. 重写addInterceptors方法,在该方法中添加一个InterceptorRegistry对象,并调用excludePathPatterns方法来指定需要忽略的静态资源路径。
下面是一个示例代码:
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new HandlerInterceptorAdapter() {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 在这里可以添加自定义的拦截逻辑
return true;
}
}).excludePathPatterns("/static/**"); // 忽略/static目录下的所有静态资源
}
}
```
通过上述配置,HandlerInterceptor将会忽略对/static目录下的静态资源的拦截。
阅读全文