在springboot中使用过滤器和监听器的目的:
Filter也称过滤器,是处于客户端与服务器端资源文件之间的以到过滤网。可以实现URL级别的的权限访问控制,过滤敏感词,压缩相应信息等一些高级功能
Listener是Servlet的监听器,可以监听Web应用中某些对象信息的创建,销毁,增加,修改,删除等动作的发生,然后做出响应处理
过滤器的使用:
新建一个类,该类实现Filter接口,实现该类的方法,类上添加注解
@WebFilter(filterName = “名称”,urlPatterns = “/地址”),前提要记住,要在启动类中加入一个注解
//加上此注解时,Servlet,Filter,Listener才可以自动注册
@ServletComponentScan
然后再类的具体方法中写具体,
@WebFilter(filterName = "urlFilter",urlPatterns = "/ny.do")
public class UrlFilter implements Filter {
Logger logger = LogManager.getLogger(UrlFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
logger.info("=============================>init");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
logger.info("=============================>doFilter");
}
@Override
public void destroy() {
logger.info("=============================>destroy");
}
}
Listener的使用,实现ServletContextListener接口,添加注解@WebListener,也是要在启动类中加入上面的注解的
@WebListener
public class UrlListener implements ServletContextListener {
Logger logger = LogManager.getLogger(UrlListener.class);
@Override
public void contextInitialized(ServletContextEvent sce) {
logger.info("ServletContext上下文初始化");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
logger.info("ServletContext上下文销毁");
}
}
这是控制台打印的信息