springboot the Interceptor, Filter, Listener and registration

springboot interceptor:

public class Interceptor implements HandlerInterceptor{
    private Logger logger = LoggerFactory.getLogger(Interceptor.class);

    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {
        // TODO Auto-generated method stub

    }

    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
            throws Exception {
        // TODO Auto-generated method stub

    }

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
        String flag = null;
        flag = request.getParameter("auth");
        if(StringUtils.isEmpty(flag) || !flag.equals("php")){
            /*logger.error("error-auth:{}", flag);
            response.getWriter().append("error-auth");
            return false;*/
        } else {
            logger.info("通过校验!");
            return true;
        }
        return true;
    }
}

spring boot Filters:

/ * 
 * If it is a filter, coupled @WebFilter based on MyFilter (filterName = "myFilter", urlPatterns = { "/ *"}), to the inlet @ServletComponentScan plus class 
 * / 
public  class MyFilter the implements the Filter { 
    @Override 
    public  void the init (the FilterConfig FilterConfig) throws ServletException { 

    } 

    @Override 
    public  void the doFilter (the ServletRequest Request, the ServletResponse Response, the FilterChain catena alberghiera) throws IOException, ServletException { 
        System.out.println (request.getParameter ( "name" )); 
        the HttpServletRequest hrequest = (HttpServletRequest)request;
        HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper((HttpServletResponse) response);
        if(hrequest.getRequestURI().indexOf("/index") != -1 ||
                hrequest.getRequestURI().indexOf("/asd") != -1 ||
                hrequest.getRequestURI().indexOf("/online") != -1 ||
                hrequest.getRequestURI().indexOf("/login") != -1
                ) {
            chain.doFilter(request, response);
        }else {
//            wrapper.sendRedirect("/login");
            chain.doFilter(request, response);
        }
    }

    @Override
    public void destroy() {

    }
}

springboot listener:

/ ** 
 * @date: 2019/4/1 
 * @description: ServletRequestListener, the HttpSessionListener, of ServletContextListener ...... 
 * @WebListener annotations may be used directly on MyListener classes, classes with the inlet to @ServletComponentScan 
 * / 
public  class a MyListener the implements the HttpSessionListener {
     Private Logger Logger = LoggerFactory.getLogger ( the this .getClass ()); // user this.getClass (), less error prone paste 
    public  static  int Online = 0 ; 

    @Override 
    public  void sessionCreated (HttpSessionEvent SE) { 
        Online ++ ; 
        logger.info ("online Online is:" + Online); 
    } 

    @Override 
    public  void the sessionDestroyed (HttpSessionEvent SE) { 

    } 
}

Sign up to spring blocker, filter, listener:

@Configuration
public class MyWebAppConfigurer implements WebMvcConfigurer {


//    @Bean
   /* public HandlerInterceptor getMyInterceptor(){
        return new Interceptor();
    }*/

    /**
     * 注册拦截器
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new Interceptor()).addPathPatterns("/**");
//        super.addInterceptors(registry);
    }

    /**
     * 注册监听器
     * @return
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Bean
    public ServletListenerRegistrationBean listenerRegist() {
        ServletListenerRegistrationBean srb = new ServletListenerRegistrationBean();
        srb.setListener(new MyListener());
        System.out.println("listener");
        return srb;
    }

    /**
     * 注册过滤器
     * @return
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Bean
    publicFilterRegist FilterRegistrationBean () { 
        FilterRegistrationBean frBean = new new FilterRegistrationBean (); 
        frBean.setFilter ( new new the MyFilter ());
 //         frBean.setOrder (. 1); // specified filter when the filter order of execution of a plurality of 
        frBean.addUrlPatterns ( " / * " ); 
        System.out.println ( " filter " );
         return frBean; 
    } 

    / * @Override 
    public void addViewControllers (ViewControllerRegistry Registry) { 
        registry.addViewController (" / ZXC / foo foo ")") setViewName (. " ; 
    } * / 


}

 

Guess you like

Origin www.cnblogs.com/heqiyoujing/p/11106824.html