SSM整合以及相关补充(12)

前后端协议联调在定义了前后端的协议规范并完成了后端开发后,我们还需要设计前端的开发
关于前端开发并不是我们的重点,所以下面只作简单介绍
拦截器设置首先我们需要注意我们的SpringMVC的拦截路径设置为全部路径:
// ServletContainersInitConfigpackage com.itheima.config;import org.springframework.web.filter.CharacterEncodingFilter;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;import javax.servlet.Filter;public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {    protected Class<?>[] getRootConfigClasses() {        return new Class[0];    }    protected Class<?>[] getServletConfigClasses() {        return new Class[]{SpringMvcConfig.class};    }    protected String[] getServletMappings() {        // 系统会将全部路径下的请求都交付给SpringMVC处理        return new String[]{"/"};    }    //乱码处理    @Override    protected Filter[] getServletFilters() {        CharacterEncodingFilter filter = new CharacterEncodingFilter();        filter.setEncoding("UTF-8");        return new Filter[]{filter};    }}所以当我们查询主页网页时,会被SpringMVC接收并且要求返回一个相关的服务层方法,很明显这是错误的
所以我们需要设置一个拦截器用来放行一些网页相关的资源,使用户访问时,直接将相关页面资源反馈回去:
// 我们选择在Config文件夹下创建SpringMvcSupport继承WebMvcConfigurationSupport作为SpringMVC的工具类package com.itheima.config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;// 需要继承WebMvcConfigurationSupport用作工具类@Configurationpublic class SpringMvcSupport extends WebMvcConfigurationSupport {    // 继承addResourceHandlers方法,进行放行操作    @Override    protected void addResourceHandlers(ResourceHandlerRegistry registry) {        // 利用参数registry,addResourceHandler后跟参数路径,addResourceLocations后跟访问页面        registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");        registry.addResourceHandler("/css/**").addResourceLocations("/css/");        registry.addResourceHandler("/js/**").addResourceLocations("/js/");        registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/");    }}同时记得在SpringMvcConfig中扫描相关类:
【SSM整合以及相关补充】// SpringMvcConfigpackage com.itheima.config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.EnableWebMvc;@Configuration@ComponentScan({"com.itheima.controller","com.itheima.config"})@EnableWebMvcpublic class SpringMvcConfig {}

经验总结扩展阅读