添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

全局异常处理类

import com.demo.vo.HttpResult;
import org.springframework.validation.BindException;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import java.util.ArrayList;
import java.util.List;
 * 定义全局异常类
 * 全局异常控制类加入拦截
@RestControllerAdvice
public class GlobalExceptionHandle {
    @ExceptionHandler(value = BindException.class)
    public HttpResult bindExceptionErrorHandler(BindException ex) throws Exception {
        List<String> errorList=new ArrayList<>();
        if(ex.hasErrors()){
            List<ObjectError> list=ex.getAllErrors();
            for(ObjectError objectError:list){
                errorList.add(objectError.getDefaultMessage());
//            ex.getAllErrors().forEach( objectError -> errorList.add(objectError.getDefaultMessage()));
        if(!errorList.isEmpty()){
            return HttpResult.error(errorList);
        return HttpResult.error();

2.0 拦截器

2.1 拦截器类

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("my interceptor prehandles");
        return true;
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("my interceptor postHandler");
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("my interceptor aferCompletion");

2.2 开启拦截器

import com.demo.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 WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/hello");

拦截器中方法的执行顺序:preHandle-->Controller-->postHandle-->afterCompletion

python处理滑块验证码 爬虫滑块验证码

简单说明一下:测试网址: https://accounts.douban.com/passport/login (豆瓣登陆页) 类型: 滑块验证码 基本思路: 下载图片到本地 => 使用CV获取边缘值并计算距离 => 模拟用户拖动 目录简单说明一下:一、模拟点击1.点击至验证页2.保存图片二、CV识别缺口1. 边缘识别2.计算距离三、模拟用户拖动1. 距离分散2. 拖动最终代码: 一、