目录结构如下:
interceptor包下的LoginInterceptor代码如下:
package com.yx.blog.interceptor;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginInterceptor extends HandlerInterceptorAdapter
{
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler)throws Exception {
if(request.getSession().getAttribute("user")==null)
{//如果没有登录,响应admin
response.sendRedirect("/admin");
return false;//失败
}
return true;//成功
}
}
WebConfig代码:
package com.yx.blog.interceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/admin/**")//所有的admin路径都不能越过登录,直接操作后台
.excludePathPatterns("/admin")//排除路径admin
.excludePathPatterns("/admin/login");//排除/admin/login
}
}