config配置:
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
/**
* 跨域配置
* @return
*/
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
return corsConfiguration;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//需要配置1:----------- 需要告知系统,这是要被当成静态文件的!
//第一个方法设置访问路径前缀,第二个方法设置资源路径
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/");
}
静态文件的路径:
用静态方式去访问,http://localhost:8080/static/generateOrder.html
里面引用的路径为:
如果用http://localhost:7500/message去访问
@Controller
public class SpsMessageUtilsController {
@RequestMapping("/message")
public String getMessage() {
return "static/generateOrder2";
}
}
原因:转发和重定向的区别之一是:采用转发,URL不会发生变化。即从一个servlet转发到一个jsp页面,url仍为servlet的地址。这样,原来jsp页面中使用到相对路径的地方要进行修改。否则,是找不到文件的。