
文章目录
一、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测试即可
热门文章
- 乍得VPN | 3月7日23M/S|免费V2ray/Shadowrocket/SSR/Clash免费节点订阅分享
- 农大宠物医院是公立的吗(农大宠物医院医生简介)
- 分库分表实现方式Client和Proxy,性能和维护性该怎么选?
- 乍得VPN | 3月15日20M/S|免费V2ray/Clash/Shadowrocket/SSR免费节点订阅分享
- 宠物领养中心在哪里(宠物领养中心官网)
- 乍得VPN | 3月31日20.7M/S|免费Clash/SSR/Shadowrocket/V2ray免费节点订阅分享
- Javascript 实现二维码生成
- 广州宠物领养中心哪家好点 广州宠物领养中心哪家好点呢
- c语言之字符串旋转
- 动物疫苗概念股龙头 动物疫苗概念股龙头股