springboot 配置拦截器

springboot 配置拦截器

WebConfig

@Autowired
	private ParentInterceptor parentInterceptor;
	@Override //添加拦截器
	public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(teacherInterceptor).addPathPatterns("/" + GlobalNames.TEACHER_URL +"/**")//拦截所有请求
				.excludePathPatterns("/" + GlobalNames.TEACHER_URL +"/inlogin","/" + GlobalNames.TEACHER_URL +"/login",
						"/");}

	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		// registry.addResourceHandler("/upload/**").addResourceLocations("file:"+uploadPath);
	}

ParentInterceptor

@Component
public class ParentInterceptor implements HandlerInterceptor {

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
	try {
        Parent dto = (Parent) request.getSession().getAttribute(Parent.PARENT);
        Teacher teacher=(Teacher)request.getSession().getAttribute(Teacher.TEACHER_ADMIN);
        if (teacher!=null){
            return true;
		}else if(dto==null){
            if ("POST".equals(request.getMethod())) {
                returnJson(response, "{\"state\":\"9002\",\"message\":\"请先登录后操作!\"}");
            }else{
                response.sendRedirect(request.getContextPath()+"/parent/inlogin");
            }
            return false;

        }
	} catch (NullPointerException e) {
	}
	
    return true;
}

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
        throws Exception {
}

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception)
        throws Exception {
}

private void returnJson(HttpServletResponse response, String json) throws Exception{
    PrintWriter writer = null;
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html; charset=utf-8");
    try {
        writer = response.getWriter();
        writer.print(json);

    } catch (IOException e) {
    } finally {
        if (writer != null)
            writer.close();
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值