SpringBoot interceptor / filter / listener

SpringBoot interceptors | filters | Listeners

1. blockers: interceptor, for a method or a field prior to being accessed, then intercept before or after the addition of certain operations in AOP (Aspect-Oriented Programming). AOP intercept is an implementation strategy. Generally used to intercept user login, user authentication and so on.

2. Filter: it may process client requests. When processing is complete, it is passed to the next filter process, so that the customer requests one by one in the processing chain in the filter until the request is sent to the destination. Usually for processing the data.

3. Listeners:

 

Configuring interceptors:

Interface implemented HandlerInterceptor

package com.intercept;

import org.springframework.lang.Nullable;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserInterceptor implements HandlerInterceptor {
    //方法执行前
    @Override
    public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object o) throws Exception {
        System.out.println("方法执行前");
         IF (the req.getSession () the getAttribute ( "User") ==. Null ) { 
            System.out.println ( "user is not logged or session failure" ); 
            resp.sendRedirect ( "/ Login / to_login" );
             return  to false ; 
        } 
        return  to true ; 
    } 
    // methods performing 
    @Override
     public  void the postHandle (the HttpServletRequest HttpServletRequest, HttpServletResponse the HttpServletResponse, Object O, ModelAndView ModelAndView) throws Exception { 
        System.out.println ( "after the implementation of the method" ); 
    } 
    //页面渲染前
    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        System.out.println("页面渲染前");
    }
}

Add interceptors in WebMvcConfigurer in:

 

package com.intercept;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class InterceptorConfig   implements WebMvcConfigurer {
    //添加拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new UserInterceptor())
                .addPathPatterns("/**")     //拦截请求
                .excludePathPatterns ( "/ Login / to_login", "/ Login / do_login");   // not interception request 
    } 
}

 

Interceptor configuration is complete.

 

Guess you like

Origin www.cnblogs.com/yanghe123/p/10945674.html
Recommended