原理图:
1.增加了拦截器类和配置类
2.拦截类:
package com.cy.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
public class TimeInterceptor implements HandlerInterceptor {
/**此方法是在@Controller对象方法执行之前执行*/
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
LocalDateTime time=LocalDateTime.now();
int hour=time.getHour();
System.out.println("hour="+hour);
if(hour<12||hour>23) {
throw new RuntimeException("请在指定时间访问");
}
return true;//true表示放行
}
}
2.配置类:
package com.cy.config;
import com.cy.interceptor.TimeInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class SpringWebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TimeInterceptor())
.addPathPatterns("/consumer/*");
}
}
3.访问地址页面显示:
访问页面显示:当前时间设置为访问范围内的
访问页面显示:当前时间设置为访问范围外的