SessionInterceptor 类中preHandle()方法按照小匠的代码发现,刷新页面会执行两次拦截器,找了半天没有发现原因
下面是我写的代码: 中途有打印token,每次都能打印两个,还有就是进入问题时,会把问题浏览数增加2,代码应该没有错,应该就是拦截器执行了两次,找了半天没有发现原因。
````java
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length != 0)
for (Cookie cookie : cookies) {
if (cookie.getName().equals("token")) {
String token = cookie.getValue();
System.out.println(token);
UserExample userExample = new UserExample();
userExample.createCriteria().andTokenEqualTo(token);
List users = userMapper.selectByExample(userExample);
if (users.size()!=0) {
request.getSession().setAttribute("user", users.get(0));
}
break;
}
}
return true;
}
````