为什么prehandle被调用两次

为什么prehandle被调用两次

今天我自己尝试写了个拦截器,意外发现这个拦截器执行了两次,查阅很多文章过后却还是没能解决问题。

网上提供的解决方法有:1、排除重复扫描原因,导致拦截器执行多次,2、排除xml重复导入,导致拦截器执行多次。
但是我遇到的情况通过这样观察,很明确。话不多说上代码:
package com.atwu.miao.intercepter;

import com.atwu.miao.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AuthIntercepter extends HandlerInterceptorAdapter {
     

    @Autowired
    private UserService userService;

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
     
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        return userService.hasUser(name,password);
    }
}

断点调试发现
第一次进入断点时:
为什么prehandle被调用两次_第1张图片
这里请求路径被拦截,是正确的。
放行。。。
第二次进入断点时:
为什么prehandle被调用两次_第2张图片
这里请求路径居然是小图标,诶!
所以问题的原因在于,拦截器拦截了不该拦截的静态资源请求。

解决

只需要放行这样的请求即可!
为什么prehandle被调用两次_第3张图片

你可能感兴趣的:(java)