1.拦截器代码

  1. package com.jf3q.education.Interceptor;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. import javax.servlet.http.HttpSession;
  5. import org.springframework.web.servlet.HandlerInterceptor;
  6. import org.springframework.web.servlet.ModelAndView;
  7. public class LoginInterceptor implements HandlerInterceptor {
  8. // 执行Handler方法之前执行
  9. // 用于身份认证、身份授权
  10. // 比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再向下执行
  11. //验证用户权限
  12. @Override
  13. public boolean preHandle(HttpServletRequest request,
  14. HttpServletResponse response, Object handler) throws Exception {
  15. HttpSession session = request.getSession();
  16. if(session.getAttribute("loginAdmin")!=null){
  17. return true;
  18. }else{
  19. request.getRequestDispatcher("/WEB-INF/jsp/admin/login.jsp").forward(request, response);
  20. return false;
  21. }
  22. }
  23. // 进入Handler方法之后,返回modelAndView之前执行
  24. // 应用场景从modelAndView出发:将公用的模型数据(比如菜单导航)在这里
  25. // 传到视图,也可以在这里统一指定视图
  26. @Override
  27. public void postHandle(HttpServletRequest request,
  28. HttpServletResponse response, Object handler,
  29. ModelAndView modelAndView) throws Exception {
  30. }
  31. // 执行Handler完成执行此方法
  32. // 应用场景:统一异常处理,统一日志处理
  33. @Override
  34. public void afterCompletion(HttpServletRequest request,
  35. HttpServletResponse response, Object handler, Exception ex)
  36. throws Exception {
  37. }
  38. }

2.注册进系统并设置放行拦截的路径

  1. package com.jf3q.education;
  2. import java.util.List;
  3. import org.springframework.context.annotation.Configuration;
  4. import org.springframework.format.FormatterRegistry;
  5. import org.springframework.http.converter.HttpMessageConverter;
  6. import org.springframework.validation.MessageCodesResolver;
  7. import org.springframework.validation.Validator;
  8. import org.springframework.web.method.support.HandlerMethodArgumentResolver;
  9. import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
  10. import org.springframework.web.servlet.HandlerExceptionResolver;
  11. import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
  12. import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
  13. import org.springframework.web.servlet.config.annotation.CorsRegistry;
  14. import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
  15. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  16. import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
  17. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  18. import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
  19. import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
  20. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  21. import com.jf3q.education.Interceptor.LoginInterceptor;
  22. @Configuration
  23. public class WebappAdapter implements WebMvcConfigurer{
  24. /**
  25. * 注册拦截器
  26. */
  27. @Override
  28. public void addInterceptors(InterceptorRegistry registry) {
  29. registry.addInterceptor(new LoginInterceptor())
  30. .addPathPatterns("/**") //所有请求都被拦截,包括静态资源
  31. .excludePathPatterns("/","/index","/login","/static/**","/favicon.ico");//设置不拦截的路径;
  32. }
  33. @Override
  34. public void addArgumentResolvers(List<HandlerMethodArgumentResolver> arg0) {
  35. // TODO Auto-generated method stub
  36. }
  37. @Override
  38. public void addCorsMappings(CorsRegistry arg0) {
  39. // TODO Auto-generated method stub
  40. }
  41. @Override
  42. public void addFormatters(FormatterRegistry arg0) {
  43. // TODO Auto-generated method stub
  44. }
  45. @Override
  46. public void addResourceHandlers(ResourceHandlerRegistry arg0) {
  47. // TODO Auto-generated method stub
  48. }
  49. @Override
  50. public void addReturnValueHandlers(
  51. List<HandlerMethodReturnValueHandler> arg0) {
  52. // TODO Auto-generated method stub
  53. }
  54. @Override
  55. public void addViewControllers(ViewControllerRegistry arg0) {
  56. // TODO Auto-generated method stub
  57. }
  58. @Override
  59. public void configureAsyncSupport(AsyncSupportConfigurer arg0) {
  60. // TODO Auto-generated method stub
  61. }
  62. @Override
  63. public void configureContentNegotiation(ContentNegotiationConfigurer arg0) {
  64. // TODO Auto-generated method stub
  65. }
  66. @Override
  67. public void configureDefaultServletHandling(
  68. DefaultServletHandlerConfigurer arg0) {
  69. // TODO Auto-generated method stub
  70. }
  71. @Override
  72. public void configureHandlerExceptionResolvers(
  73. List<HandlerExceptionResolver> arg0) {
  74. // TODO Auto-generated method stub
  75. }
  76. @Override
  77. public void configureMessageConverters(List<HttpMessageConverter<?>> arg0) {
  78. // TODO Auto-generated method stub
  79. }
  80. @Override
  81. public void configurePathMatch(PathMatchConfigurer arg0) {
  82. // TODO Auto-generated method stub
  83. }
  84. @Override
  85. public void configureViewResolvers(ViewResolverRegistry arg0) {
  86. // TODO Auto-generated method stub
  87. }
  88. @Override
  89. public void extendHandlerExceptionResolvers(
  90. List<HandlerExceptionResolver> arg0) {
  91. // TODO Auto-generated method stub
  92. }
  93. @Override
  94. public void extendMessageConverters(List<HttpMessageConverter<?>> arg0) {
  95. // TODO Auto-generated method stub
  96. }
  97. @Override
  98. public MessageCodesResolver getMessageCodesResolver() {
  99. // TODO Auto-generated method stub
  100. return null;
  101. }
  102. @Override
  103. public Validator getValidator() {
  104. // TODO Auto-generated method stub
  105. return null;
  106. }
  107. }