声明:代码是JavaEE开发的颠覆者 Spring Boot实战代码中的,我买了这书,并练习
public class DemoInterceptor extends HandlerInterceptorAdapter {//1
@Override
public boolean preHandle(HttpServletRequest request, //2
HttpServletResponse response, Object handler) throws Exception {
System.out.println("请求前对该路径做动作:"+request.getRequestURI());
return true;
}
@Override
public void postHandle(HttpServletRequest request, //3
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println("请求前对该路径做动作:结束");
---------------------
@Controller//1
public class HelloController {
@RequestMapping("/index")
public void index(){
System.out.println("doSomeThing");
}
}
-----------------------
@Configuration
@EnableWebMvc// 开启Mvc
@EnableScheduling
@ComponentScan("com.wisely.highlight_springmvc4")
public class MyMvcConfig extends WebMvcConfigurerAdapter {
@Bean
public InternalResourceViewResolver viewResolver() {//视图解析器
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/classes/views/");
viewResolver.setSuffix(".jsp");
viewResolver.setViewClass(JstlView.class);
return viewResolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {//静态资源
registry.addResourceHandler("/assets/**").addResourceLocations(
"classpath:/assets/");// 3
}
@Bean
// 实例化拦截器
public DemoInterceptor demoInterceptor() {
return new DemoInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {// 2
registry.addInterceptor(demoInterceptor());
}
}
-----------------
public class WebInitializer implements WebApplicationInitializer {//1
@Override
public void onStartup(ServletContext servletContext)
throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(MyMvcConfig.class);
ctx.setServletContext(servletContext); //2
Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx)); //3
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
servlet.setAsyncSupported(true);//1
}
}