文章目录
一、SpringBoot中的过滤器(Listener操作同理)
1.1 创建过滤器
packagecom.qf.filter;importjavax.servlet.*;importjavax.servlet.annotation.WebFilter;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;@WebFilter(urlPatterns="/filter/*")//指定拦截路径publicclassLoginFilterimplementsFilter{@OverridepublicvoiddoFilter(ServletRequest request,ServletResponse response,FilterChain chain)throwsIOException,ServletException{System.out.println("LoginFilter ");HttpServletRequest req=(HttpServletRequest)request;HttpServletResponse resp=(HttpServletResponse)response; chain.doFilter(req,resp);}}
1.2 创建Controller测试类
packagecom.qf.controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/filter")publicclassFilterController{@RequestMapping("/login")publicStringlogin(){System.out.println("登录");return"login";}}
1.3 在启动类添加@ServletComponentScan注解
packagecom.qf;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.web.servlet.ServletComponentScan;@SpringBootApplication@ServletComponentScan//Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册publicclassSpringboot02Application{publicstaticvoidmain(String[] args){SpringApplication.run(Springboot02Application.class, args);}}
访问controller测试即可
二、SpringBoot中的拦截器
2.1.创建自定义拦截器
packagecom.qf.interceptor;importorg.omg.PortableInterceptor.Interceptor;importorg.springframework.web.servlet.HandlerInterceptor;importorg.springframework.web.servlet.ModelAndView;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassMyInterceptorimplementsHandlerInterceptor{//进入controller方法之前调用@OverridepublicbooleanpreHandle(HttpServletRequest request,HttpServletResponse response,Object handler)throwsException{System.out.println("preHandle");returntrue;//true表示放行,false表示不放行}//调用完controller之后,视图渲染之前@OverridepublicvoidpostHandle(HttpServletRequest request,HttpServletResponse response,Object handler,ModelAndView modelAndView)throwsException{System.out.println("postHandle");}//页面跳转之后,整个流程执行之后,一般用于资源清理操作@OverridepublicvoidafterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception ex)throwsException{System.out.println("afterCompletion");}}
2.2创建拦截器配置类
packagecom.qf.interceptor;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.InterceptorRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;@ConfigurationpublicclassMyInterceptorConfigimplementsWebMvcConfigurer{@OverridepublicvoidaddInterceptors(InterceptorRegistry registry){//设置拦截器并指定拦截路径 registry.addInterceptor(newMyInterceptor()).addPathPatterns("/interceptor/*");//registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");//拦截所有//registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/test");//指定不拦截//添加自定义拦截器WebMvcConfigurer.super.addInterceptors(registry);}}
2.3在static目录下创建index.html以及controller测试类
packagecom.qf.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;@ControllerpublicclassInterceptorController{@RequestMapping("/interceptor/myinterceptor")publicStringmyinterceptor(){System.out.println("myinterceptor");return"/index.html";}}
访问controller测试即可
热门文章
- @FeignClient注解的接口,用@Autowired可能获取不到实例
- 宠物粮食代工一吨2万一贵吗知乎 宠物粮食代工一吨2万一贵吗知乎
- 重庆宠物领养贴吧论坛官网(重庆宠物领养重庆宠物赠送)
- 【java】关于sc.hasNext()在while语句中的使用
- 宠物领养协议具有法律效应吗为什么还要签字(宠物领养协议需要身份证复印件吗)
- Oracle安装 – shmmax和shmall设置
- Spingboot Resttemplate连接池配置
- 孕妇被猫抓了出血对宝宝有什么影响没(孕妇被猫抓了出血对宝宝有什么影响没事吧)
- 宠物粮食成本分析表(宠物粮食原材料)
- 1月25日|V2ray/Clash/Shadowrocket/SSR每天更新18.6M/S免费节点订阅链接,付费节点订阅推荐