ssm框架拦截器配置(配置文件方式 和 纯注解方式)

项目整体搭建基于以下文章:

ssm框架整合(配置文件方式 和 纯注解方式) - (jianshu.com)

无论那种方式,都需要创建一个自定义拦截器类

package com.xx.ssm.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class IndexInterceptor implements HandlerInterceptor{
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("该方法在 controller 执行前执行,可以实现对数据的预处理。 如果方法返回 true ,则继续调用下一个资源。否则不在继续调用。");
        return false;//为false是拦截,true是放行
    }
    
    
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {
        System.out.println("该方法在处理器执行后,生成视图前执行。这里有机会修改视图层数据");
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {
        System.out.println("最后执行,通常用于记录日志,释放资源,处理异常。");
    }
}

一、配置文件方式



        
    
    
    
 

    
    
        
            
            
             
        
    
   
 

二、纯注解方式

修改WebConfig类

package com.neusoft.ssm;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.xx.ssm.interceptor.IndexInterceptor;

@Configuration
@EnableWebMvc // SpringMVC注解,等同于
@ComponentScan(basePackages = { "com.neusoft.ssm.controller" }) // @ComponentScan用于扫描通用组件,这里用来扫描Controller组件
public class WebConfig implements WebMvcConfigurer { //实现WebMvcConfigurer接口
    
    @Bean   //将自定义拦截器放入到spring容器中
    public IndexInterceptor interceptor() {
        return new IndexInterceptor();
    }
    
    @Autowired  //创建自定义的拦截器
    IndexInterceptor interceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
 
        registry.addInterceptor(interceptor) // 添加拦截器
                .addPathPatterns("/**")       // 添加需要拦截的路径
                .excludePathPatterns("/login");        // 放行的路径
    } 
}

你可能感兴趣的:(ssm框架拦截器配置(配置文件方式 和 纯注解方式))