1.方式一(使用注解)
首先,我们写一个Filter。要求就是简单的打印一句话。
在MyFilter这个类的上方使用 @WebFilter 注解来创建Filter即可。
package com.songzihao.springboot.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException; /** * */ @WebFilter(urlPatterns = "/myfilter") public class MyFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("======您已进入过滤器======"); filterChain.doFilter(servletRequest,servletResponse); } }
之后在SpringBoot项目的入口类上方使用注解 @ServletComponentScan 注解来扫描filter包中的注解即可。
package com.songzihao.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication @ServletComponentScan(basePackages = "com.songzihao.springboot.filter") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
最后启动测试。
2.方式二(定义配置类)
仍然是先写一个 Filter。这次不使用注解。
package com.songzihao.springboot.filter; import javax.servlet.*; import java.io.IOException; /** * */ public class MyFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("======您已进入过滤器======"); filterChain.doFilter(servletRequest,servletResponse); } }
之后写一个控制层controller。
package com.songzihao.springboot.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; /** * */ @Controller public class UserController { @RequestMapping(value = "/user/detail") public @ResponseBody String userDetail() { return "/user/detail"; } @RequestMapping(value = "/center") public @ResponseBody String center() { return "center"; } }
然后再写一个配置类!!!
package com.songzihao.springboot.config; import com.songzihao.springboot.filter.MyFilter; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * */ @Configuration //定义此类为配置类 public class FilterConfig { @Bean public FilterRegistrationBean myFilterRegistrationBean() { //注册过滤器 FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean(new MyFilter()); //添加过滤路径 filterRegistrationBean.addUrlPatterns("/user/*"); return filterRegistrationBean; } }
最后启动测试。