美文网首页
配置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