项目实战(1)-拦截器

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了项目实战(1)-拦截器脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

引入

拦截器的基本作用是:

  • 屏蔽链接,止直接通过链接访问
  • 对屏蔽的链接进行使用HandlerInterceptor拦截器处理

关键词

WebMvcconfigurer、InterceptorRegistry、HandlerInterceptor PReHandle、postHandle、afterCompletion

什么是拦截器

拦截器,首先实现拦截:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Autowired
    LoginTicketInterceptor LOGinTicketInterceptor;//要注册的拦截器

    @override
    public void addInterceptors(InterceptorRegistry registry) {
        //注册拦截器、排除、添加
        registry.addInterceptor(loginTicketInterceptor)
                .excludePathPatterns("/**/*.css", "/**/*.js", "/**/*.png", "/**/*.jpg", "/**/*.jPEg")
                .addPathPatterns("/register", "/login");
    }
}

拦截器,其次是拦截之后干嘛

@component
public class LoginTicketInterceptor implements HandlerInterceptor {

    private static final Logger logger= LoggerFactory.getLogger(Alphainterceptor.class);

    //调用前拦截
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
	...//业务逻辑,以登录为例
	//调用方法前,判断/查找登陆凭证,将用户存储到hostHolder中。
        logger.debug("preHandle:"+handler.toString());
        return true;
    }

    //Controller之后,return返回htML之前执行
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
	...//业务逻辑
	//用户已登录,就同时向前端返回当前登录用户,前端就可以根据用户是否已登陆,进行相应的判断,显示对应的功能
        logger.debug("postHandle:"+handler.toString());
    }

    //返回html之后之执行
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
	...//业务逻辑
	//调用结束,清除用户信息
        logger.debug("afterCompletion:"+handler.toString());
    }
}

脚本宝典总结

以上是脚本宝典为你收集整理的项目实战(1)-拦截器全部内容,希望文章能够帮你解决项目实战(1)-拦截器所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。