美文网首页
配置2.X的mvc

配置2.X的mvc

作者: c之气三段 | 来源:发表于2021-06-14 16:16 被阅读0次

    MyInterceptor拦截器

    package com.yuanyi.newspringboot.config;
    
    import org.springframework.stereotype.Component;
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @Component
    public class MyInterceptor implements HandlerInterceptor {
        //该方法在进入Handler方法执行之前执行此方法
        //应用场景:如身份认证,身份授权。
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            String isLogin = (String) request.getSession().getAttribute("key");
            if ("ok".equals(isLogin)) {
                return true;
            } else {
               request.getRequestDispatcher("login").forward(request,response);
                return false;
            }
    
        }
    
        //该方法在进入Handler方法之后,返回ModelAndView之前执行
        //应用场景从modelAndView出发,将公用模型数据(如菜单导航)在这里传到视图,也可以在这里统一制定视图
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    
        }
    
        //该方法在handler方法执行完之后执行
        //应用场景:统一日志处理,统一异常处理
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    
        }
    }
    

    MyWebMvcConfig视图配置

    package com.yuanyi.newspringboot.config;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.*;
    
    import javax.annotation.Resource;
    
    @Configuration
    public class MyWebMvcConfig implements WebMvcConfigurer{
        @Resource
        private MyInterceptor myInterceptor;
    
        /**
         * 注册视图解析器
         * @param registry
         */
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
            registry.addViewController("/").setViewName("login");
            registry.addViewController("/login").setViewName("login");
            registry.addViewController("/login.html").setViewName("login");
        }
        /**
         * 注册拦截器
         * @param registry
         */
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            InterceptorRegistration myRegistration=registry.addInterceptor(myInterceptor);
            myRegistration.addPathPatterns("/**");
            myRegistration.excludePathPatterns("/","/login","login.html","/kaptcha","/verify","/removeVerifyCode","/static/**");
        }
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        }
    }
    

    相关文章

      网友评论

          本文标题:配置2.X的mvc

          本文链接:https://www.haomeiwen.com/subject/zkvkfltx.html