集成拦截器
登录验证为例
添加拦截器
public class LoginInterceptor implements HandlerInterceptor {
private Logger log = LoggerFactory.getLogger(getClass());
//Controller逻辑执行之前
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.info("preHandle....");
Object user = WebUtils.getHttpSession().getAttribute("user");
log.info("user:{}",user);
String uri = request.getRequestURI();
log.info("uri:"+ uri);
if (user == null) {
response.sendRedirect("/");
return false;
} else {
return true;
}
}
//Controller逻辑执行完毕但是视图解析器还未进行解析之前
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
log.info("postHandle....");
}
//Controller逻辑和视图解析器执行完毕
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
log.info("afterCompletion....");
}
}注册,配置拦截路径和排除登录需访问路径
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/", "/login", "/user/login","/user/login",
"/images/**", "/user/getCode", "/js/**", "/page/**", "/layui/**",
"/layui_ext/**", "/login.html", "/webjars/**", "/css/**");
}
}退出登录清除session
/** * 跳转到登录 * @return */
@RequestMapping("toLogin")
public String toLogin(){
WebUtils.getHttpSession().removeAttribute("user");
return "/";
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/126790.html