增加springmvc 全局异常处理、拦截器示例代码
This commit is contained in:
		@@ -1 +0,0 @@
 | 
				
			|||||||
springmvc-base-annotation
 | 
					 | 
				
			||||||
@@ -1,14 +1,21 @@
 | 
				
			|||||||
package com.heibaiying.config;
 | 
					package com.heibaiying.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.heibaiying.exception.NoAuthExceptionResolver;
 | 
				
			||||||
 | 
					import com.heibaiying.interceptors.MyFirstInterceptor;
 | 
				
			||||||
 | 
					import com.heibaiying.interceptors.MySecondInterceptor;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
import org.springframework.context.annotation.ComponentScan;
 | 
					import org.springframework.context.annotation.ComponentScan;
 | 
				
			||||||
import org.springframework.context.annotation.Configuration;
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.HandlerExceptionResolver;
 | 
				
			||||||
import org.springframework.web.servlet.ViewResolver;
 | 
					import org.springframework.web.servlet.ViewResolver;
 | 
				
			||||||
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
 | 
					import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
 | 
				
			||||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 | 
					import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 | 
				
			||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 | 
					import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 | 
				
			||||||
import org.springframework.web.servlet.view.InternalResourceViewResolver;
 | 
					import org.springframework.web.servlet.view.InternalResourceViewResolver;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @author : heibaiying
 | 
					 * @author : heibaiying
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -32,8 +39,23 @@ public class ServletConfig implements WebMvcConfigurer {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 配置静态资源处理器
 | 
					     * 配置静态资源处理器
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
 | 
					    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
 | 
				
			||||||
        configurer.enable();
 | 
					        configurer.enable();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 添加自定义拦截器
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void addInterceptors(InterceptorRegistry registry) {
 | 
				
			||||||
 | 
					        registry.addInterceptor(new MyFirstInterceptor()).addPathPatterns("/mvc/**").excludePathPatterns("mvc/login");
 | 
				
			||||||
 | 
					        registry.addInterceptor(new MySecondInterceptor()).addPathPatterns("/mvc/**");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 添加全局异常处理器
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
 | 
				
			||||||
 | 
					        resolvers.add(new NoAuthExceptionResolver());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
package com.heibaiying.controller;
 | 
					package com.heibaiying.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.heibaiying.exception.NoAuthException;
 | 
				
			||||||
import org.springframework.stereotype.Controller;
 | 
					import org.springframework.stereotype.Controller;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RequestMapping;
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -16,4 +17,10 @@ public class HelloController {
 | 
				
			|||||||
    private String hello() {
 | 
					    private String hello() {
 | 
				
			||||||
        return "hello";
 | 
					        return "hello";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @RequestMapping("auth")
 | 
				
			||||||
 | 
					    private void auth() {
 | 
				
			||||||
 | 
					        throw new NoAuthException("没有对应的访问权限!");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.exception;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 自定义无权限异常
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class NoAuthException extends RuntimeException {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public NoAuthException() {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public NoAuthException(String message) {
 | 
				
			||||||
 | 
					        super(message);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public NoAuthException(String message, Throwable cause) {
 | 
				
			||||||
 | 
					        super(message, cause);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public NoAuthException(Throwable cause) {
 | 
				
			||||||
 | 
					        super(cause);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.exception;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.HandlerExceptionResolver;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.ModelAndView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 无权限异常处理机制
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class NoAuthExceptionResolver implements HandlerExceptionResolver {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
 | 
				
			||||||
 | 
					        if (ex instanceof NoAuthException && !isAjax(request)) {
 | 
				
			||||||
 | 
					            return new ModelAndView("NoAuthPage");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return new ModelAndView();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 判断是否是Ajax请求
 | 
				
			||||||
 | 
					    private boolean isAjax(HttpServletRequest request) {
 | 
				
			||||||
 | 
					        return "XMLHttpRequest".equalsIgnoreCase(request.getHeader("X-Requested-With"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.interceptors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.HandlerInterceptor;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.ModelAndView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : spring5 中 preHandle,postHandle,afterCompletion 在接口中被声明为默认方法
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class MyFirstInterceptor implements HandlerInterceptor {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
 | 
				
			||||||
 | 
					        System.out.println("进入第一个拦截器preHandle");
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
 | 
				
			||||||
 | 
					        System.out.println("进入第一个拦截器postHandle");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
 | 
				
			||||||
 | 
					        System.out.println("进入第一个拦截器afterCompletion");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.interceptors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.HandlerInterceptor;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.ModelAndView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : spring5 中 preHandle,postHandle,afterCompletion 在接口中被声明为默认方法
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class MySecondInterceptor implements HandlerInterceptor {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
 | 
				
			||||||
 | 
					        System.out.println("进入第二个拦截器preHandle");
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
 | 
				
			||||||
 | 
					        System.out.println("进入第二个拦截器postHandle");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
 | 
				
			||||||
 | 
					        System.out.println("进入第二个拦截器afterCompletion");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>Title</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    没有对应的访问权限!
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -39,6 +39,22 @@
 | 
				
			|||||||
            <artifactId>spring-webmvc</artifactId>
 | 
					            <artifactId>spring-webmvc</artifactId>
 | 
				
			||||||
            <version>${spring-base-version}</version>
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
        </dependency>
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>javax.servlet</groupId>
 | 
				
			||||||
 | 
					            <artifactId>javax.servlet-api</artifactId>
 | 
				
			||||||
 | 
					            <version>4.0.1</version>
 | 
				
			||||||
 | 
					            <scope>provided</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.alibaba</groupId>
 | 
				
			||||||
 | 
					            <artifactId>fastjson</artifactId>
 | 
				
			||||||
 | 
					            <version>1.2.54</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.google.guava</groupId>
 | 
				
			||||||
 | 
					            <artifactId>guava</artifactId>
 | 
				
			||||||
 | 
					            <version>27.0.1-jre</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
    </dependencies>
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</project>
 | 
					</project>
 | 
				
			||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
package com.heibaiying.controller;
 | 
					package com.heibaiying.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.heibaiying.exception.NoAuthException;
 | 
				
			||||||
import org.springframework.stereotype.Controller;
 | 
					import org.springframework.stereotype.Controller;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RequestMapping;
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @author : heibaiying
 | 
					 * @author : heibaiying
 | 
				
			||||||
 * @description : hello spring
 | 
					 * @description : hello spring
 | 
				
			||||||
@@ -16,4 +18,10 @@ public class HelloController {
 | 
				
			|||||||
    private String hello() {
 | 
					    private String hello() {
 | 
				
			||||||
        return "hello";
 | 
					        return "hello";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @RequestMapping("auth")
 | 
				
			||||||
 | 
					    private void auth() {
 | 
				
			||||||
 | 
					        throw new NoAuthException("没有对应的访问权限!");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.exception;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 自定义无权限异常
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class NoAuthException extends RuntimeException {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public NoAuthException() {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public NoAuthException(String message) {
 | 
				
			||||||
 | 
					        super(message);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public NoAuthException(String message, Throwable cause) {
 | 
				
			||||||
 | 
					        super(message, cause);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public NoAuthException(Throwable cause) {
 | 
				
			||||||
 | 
					        super(cause);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.exception;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.HandlerExceptionResolver;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.ModelAndView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 无权限异常处理机制
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class NoAuthExceptionResolver implements HandlerExceptionResolver {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
 | 
				
			||||||
 | 
					        if (ex instanceof NoAuthException && !isAjax(request)) {
 | 
				
			||||||
 | 
					            return new ModelAndView("NoAuthPage");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return new ModelAndView();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 判断是否是Ajax请求
 | 
				
			||||||
 | 
					    private boolean isAjax(HttpServletRequest request) {
 | 
				
			||||||
 | 
					        return "XMLHttpRequest".equalsIgnoreCase(request.getHeader("X-Requested-With"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.interceptors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.HandlerInterceptor;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.ModelAndView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : spring5 中 preHandle,postHandle,afterCompletion 在接口中被声明为默认方法
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class MyFirstInterceptor implements HandlerInterceptor {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
 | 
				
			||||||
 | 
					        System.out.println("进入第一个拦截器preHandle");
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
 | 
				
			||||||
 | 
					        System.out.println("进入第一个拦截器postHandle");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
 | 
				
			||||||
 | 
					        System.out.println("进入第一个拦截器afterCompletion");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.interceptors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.HandlerInterceptor;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.ModelAndView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : spring5 中 preHandle,postHandle,afterCompletion 在接口中被声明为默认方法
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class MySecondInterceptor implements HandlerInterceptor {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
 | 
				
			||||||
 | 
					        System.out.println("进入第二个拦截器preHandle");
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
 | 
				
			||||||
 | 
					        System.out.println("进入第二个拦截器postHandle");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
 | 
				
			||||||
 | 
					        System.out.println("进入第二个拦截器afterCompletion");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -24,4 +24,21 @@
 | 
				
			|||||||
        <!-- 后缀 -->
 | 
					        <!-- 后缀 -->
 | 
				
			||||||
        <property name="suffix" value=".jsp"/>
 | 
					        <property name="suffix" value=".jsp"/>
 | 
				
			||||||
    </bean>
 | 
					    </bean>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!--配置拦截器-->
 | 
				
			||||||
 | 
					    <mvc:interceptors>
 | 
				
			||||||
 | 
					        <mvc:interceptor>
 | 
				
			||||||
 | 
					            <mvc:mapping path="/mvc/**"/>
 | 
				
			||||||
 | 
					            <mvc:exclude-mapping path="/mvc/login"/>
 | 
				
			||||||
 | 
					            <bean class="com.heibaiying.interceptors.MyFirstInterceptor"/>
 | 
				
			||||||
 | 
					        </mvc:interceptor>
 | 
				
			||||||
 | 
					        <mvc:interceptor>
 | 
				
			||||||
 | 
					            <mvc:mapping path="/mvc/**"/>
 | 
				
			||||||
 | 
					            <bean class="com.heibaiying.interceptors.MySecondInterceptor"/>
 | 
				
			||||||
 | 
					        </mvc:interceptor>
 | 
				
			||||||
 | 
					    </mvc:interceptors>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!--配置全局异常处理器-->
 | 
				
			||||||
 | 
					    <bean class="com.heibaiying.exception.NoAuthExceptionResolver"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</beans>
 | 
					</beans>
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>Title</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    没有对应的访问权限!
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
		Reference in New Issue
	
	Block a user