过滤器
使用 @WebFilter(filterName = "ayUserFilter", urlPatterns="/*") 注解
package cn.stevekung.filter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter(filterName = "ayUserFilter", urlPatterns="/*")
public class AyUserFilter implements Filter {
private static final Logger log = LoggerFactory.getLogger(AyUserFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.info("====filter=======init");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
log.info("====filter=======doFilter");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
log.info("====filter=======destroy");
}
}
package cn.stevekung;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan // 配置过滤器 用到
public class SpringBootBookV2Application {
public static void main(String[] args) {
SpringApplication.run(SpringBootBookV2Application.class, args);
}
}
@ServletComponentScan // 配置过滤器 用到
监听器
用于统计在线人数等
@WebListener
package cn.stevekung.listener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
// ServletContextListener 对应整个application
public class AyUserListener implements ServletContextListener{
private static final Logger log = LoggerFactory.getLogger(AyUserListener.class);
@Override
public void contextInitialized(ServletContextEvent sce) {
// 可以在上下文 contextInitialized 方法中查询所有的用户,
// 利用缓存技术把用户数据存放在缓存中 Redis缓存
log.info("ServletContext上下文初始化");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
log.info("ServletContext上下文销毁");
}
}
同样@ServletComponentScan // 配置过滤器 和 监听器 用到
package cn.stevekung;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan // 配置过滤器 和 监听器 用到
public class SpringBootBookV2Application {
public static void main(String[] args) {
SpringApplication.run(SpringBootBookV2Application.class, args);
}
}