亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

weMedia-攔截器&自定義異常

標簽:
Java

拦截器

1.定义一个拦截器类

  1. public class PassportInterceptor implements HandlerInterceptor {
    
        @Autowired
        public RedisOperator redisOperator;
    
        public static final String MOBILE_SMSCODE="mobile:smscode";
    
        /**
         * 拦截请求,进入controller前进行拦截
         *
         * @param request
         * @param response
         * @param handler
         * @return
         * @throws Exception
         */
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
            //获取用户IP
            String userIP = IPUtil.getRequestIp(request);
    
            //获取key
            boolean keyIsExist = redisOperator.keyIsExist(MOBILE_SMSCODE + ":" + userIP);
    
            if (keyIsExist){
                System.out.println("短信发送频率过快!");
                GraceExecption.display(ResponseStatusEnum.SMS_NEED_WAIT_ERROR);
                return false;
            }
    
            /**
             * true:放行
             * false:拦截
             */
            return true;
        }
    
        /**
         * 请求访问controller之后,渲染视图之前
         *
         * @param request
         * @param response
         * @param handler
         * @param modelAndView
         * @throws Exception
         */
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        }
    
        /**
         * 请求访问controller之后,渲染视图之后
         *
         * @param request
         * @param response
         * @param handler
         * @param ex
         * @throws Exception
         */
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        }
    }

2.将拦截器注册到spring容器中

https://img1.sycdn.imooc.com//61b608520001c0dc12570696.jpg

拦截器配置类中,先将拦截器类注册到bean,然后用addInterceptors配置拦截器,配置需要拦截的路由



自定义异常

  1. 先定义一个自定义异常(继承RuntimeExecption)

    https://img1.sycdn.imooc.com//61b6061a000127cd13530644.jpg

  2. 定义一个自定义异常的封装类

    https://img1.sycdn.imooc.com//61b606b70001b23912120520.jpg

  3. 定义自定义异常捕捉管理器

    https://img1.sycdn.imooc.com//61b6066b000156b212990529.jpg

  4. 在拦截器中使用

    https://img1.sycdn.imooc.com//61b6071e0001a54117190751.jpg

⭐当拦截器中被拦截下来会抛出自定义异常

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
0
獲贊與收藏
1

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消