项目源码----不需要积分
效果:
项目结构
步骤
1.建立Springboot项目
需要web依赖
2.编写配置类和Controller类
配置类
# 应用服务 WEB 访问端口
server.port=8081
spring.application.name=demo1
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.html
#server.servlet.context-path=/
Controller类
@RestController
public class FilterController {
@RequestMapping("welcome")
public String welcome(){
System.out.println("test Filter");
return "welcome";
}
}
3.编写过滤器类
过滤器类 一个类实现Filter接口 servlet的。
编写方法题
public class OneFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("init filter ==================================");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("doFilter before ================================");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("doFilter after =================================");
}
@Override
public void destroy() {
System.out.println("destory ===========================================");
}
}
4.使过滤器类生效
- 过滤器的配置类 – 推荐使用
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean testFilter(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean(new OneFilter());
registrationBean.setName("OneFilter");
//生效的路径
registrationBean.addUrlPatterns("/welcome");
//生效的优先级
registrationBean.setOrder(1);
return registrationBean;
}
}
- 过滤器的配置注解
1. 在启动类添加@ServletComponentScan注解
2. 过滤器类上添加@WebFilter(“路径”)
参考@ServletComponentScan 注解
SpringBootApplication 上使用@ServletComponentScan 注解后
Servlet可以直接通过@WebServlet注解自动注册
Filter可以直接通过@WebFilter注解自动注册
Listener可以直接通过@WebListener 注解自动注册