拦截器注册:
package org.example.interceptor_hz.config; import org.example.interceptor_hz.interceptor.FirstHandlerInterceptor; import org.example.interceptor_hz.interceptor.SecondHandlerInterceptor; import org.example.interceptor_hz.service.IndexService; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class InterceptorConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { FirstHandlerInterceptor firstHandlerInterceptor = new FirstHandlerInterceptor(new IndexService()); registry.addInterceptor(firstHandlerInterceptor).addPathPatterns("/**"); SecondHandlerInterceptor secondHandlerInterceptor = new SecondHandlerInterceptor(); registry.addInterceptor(secondHandlerInterceptor).addPathPatterns("/**"); } }
IndexService
package org.example.interceptor_hz.service; import org.springframework.stereotype.Service; @Service public class IndexService { public void testIndex() { System.out.println("执行service"); } }
拦截器一:
package org.example.interceptor_hz.interceptor; import org.example.interceptor_hz.service.IndexService; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FirstHandlerInterceptor implements HandlerInterceptor { private IndexService indexService; public FirstHandlerInterceptor(IndexService indexService){ this.indexService = indexService; } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("FirstHandlerInterceptor正在执行preHandle"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { indexService.testIndex(); System.out.println("FirstHandlerInterceptor正在执行postHandle"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("FirstHandlerInterceptor正在执行afterCompletion"); } }
拦截器二:
package org.example.interceptor_hz.interceptor; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SecondHandlerInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("SecondHandlerInterceptor正在执行preHandle"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("SecondHandlerInterceptor正在执行postHandle"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("SecondHandlerInterceptor正在执行afterCompletion"); } }
过滤器:
package org.example.interceptor_hz; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException; @WebFilter("/*") public class IndexFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("IndexFilter已执行"); filterChain.doFilter(servletRequest, servletResponse);//放行 } }
访问:
package org.example.interceptor_hz.web; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class IndexController { @RequestMapping("/interceptorIndex") public String index() { System.out.println("执行index"); return "welcome to my site"; } }
package org.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication @ServletComponentScan({"org.example.webFilter","org.example.interceptor_hz"}) public class HelloWorldApplication { public static void main(String[] args) { SpringApplication.run(HelloWorldApplication.class, args); } }
标签:拦截器,华章,spring,springframework,org,import,interceptor,servlet,public From: https://www.cnblogs.com/xiaobaibailongma/p/17065182.html