在springboot中使用servlet的话,用servlet3.0比较简单
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
然后创建一个Filter,只要在类上加@WebFilter(filterName = "oneFilter",urlPatterns = "/*")注解就代表这是Filter不用在web.xml中配置Filter了,name属性,就是以前web.xml中Filtername标签,随便起就行,urlPatterns = "/*"这个属性是拦截servlet的路径.
package com.buba.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter(filterName = "oneFilter",urlPatterns = "/*")
public class OneFilter implements Filter {
public OneFilter() {
System.out.println("实力化Filter!");
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("初始化Filter!");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("执行Filter!");
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
System.out.println("销毁Filter!");
}
}
然后在启动类上加@ServletComponentScan(basePackages = "com")这个注解表示扫描webservlet的一系列注解,basePackages = "com"这个属性表示扫描哪个包下的servlet注解,如果不写的话,servlet必须创建到启动类同包或者子包下.