今天学习springboot,讲到拦截器,怕以后忘记拦截器的配法,所以呢,趁现在自己脑子里还稍微有些记忆,赶紧把他记录在这里,以备日后使用 ^ _ ^。
就拿强制登录举例说明,具体的做法如下:
- 先编写一个拦截器类
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object user = request.getSession().getAttribute("user");
if (user == null){
response.sendRedirect(request.getContextPath() + "/login.jsp");
return false;
}
return true;
}
}
- 在com.wyh包下创建一个config文件夹,写一个类并实现WebMvcConfigurer接口,接着实现里面的addInterceptors()方法。具体代码如下:
package com.wyh.config;
import com.wyh.interceptor.MyInterceptor;
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 MyInterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/*");
}
}
*此时登录拦截器就配置好了,除了请求 /user/的都会被拦截器拦截
其中new MyInterceptor()
为自己写的拦截器类名,addPathPatterns("/**")
代表拦截所有路径下的方法,excludePathPatterns("/users/*")
代表排除controller包中路径为user的所有方法。