springmvc的html项目路径问题,springMVC访问静态资源以及classpath问题

本文详细解析了SpringMVC项目中如何访问HTML页面和静态资源,如图片。当web.xml拦截所有请求时,需通过ModelAndView在controller中进行内部跳转。在SpringMVC配置中设置静态资源映射,例如将HTML页面放在/resource/view/下,通过/mapping/main.html访问。同时,图片放在/resource/img/下,并在HTML中引用,配置mvc:resource映射以正确访问。通过理解classpath和项目结构,可以有效地管理和访问项目中的静态资源。
摘要由CSDN通过智能技术生成

如何访问一个html文件

如果你的web.xml设置了拦截所有请求,如下图所示,那么你正常的url请求会被controller的RequestMapping匹配到,比如/user匹配/user。

springmvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:springmvc.xml

1

springmvc

/

但是对于静态资源的访问,在这个RequestMapping里是无法直接匹配到的,比如你如果写一个@RequestMapping("/main.html") ,这样就是去匹配方法了,而不是跳转到main.html页面。

一般我们的页面都是放在resource下,无法被外部直接访问,因此一般利用ModelAndView实现服务器内部跳转访问。

ModelAndView设置的view路径还是会先去和RequestMapping进行匹配,因此只写下面的controller无法完成跳转。需要在springMVC.xml中进行静态资源的映射。

@RequestMapping("/index")

public ModelAndView handleRequest() {

ModelAndView mv=new ModelAndView("main.html");

return mv;

}

表示进行路径的映射。如果路径访问/view/下的任何东西,都会转向classpath:/view/去寻找。

所以mapping用于设置虚拟路径,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC 静态文件访问配置主要是为了让 Web 应用能够直接提供静态资源(如 CSS、JavaScript、图片等)而不需要经过 Controller 的处理。这有助于提高应用的性能,因为静态资源请求可以直接从服务器的缓存或 CDN 加速服务中获取。以下是配置步骤: 1. **WebMvcConfigurer接口**: 在Spring MVC的应用上下文中,通常会使用`WebMvcConfigurer`接口或其扩展类来配置静态文件访问。你需要创建一个实现该接口的类,并覆盖`addResourceHandlers()`方法。 ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/css/**") .addResourceLocations("classpath:/static/css/"); registry.addResourceHandler("/js/**") .addResourceLocations("classpath:/static/js/"); // 或者使用通配符表达式,比如处理所有以"/images/"开始的路径 registry.addResourceHandler("/images/**") .addResourceLocations("classpath:/static/images/"); } } ``` 2. **MultipartConfig支持**: 如果应用还需要处理上传文件,记得配置`multipartResolver`,避免与静态文件路径冲突。 3. **启用默认静态资源处理器**: Spring MVC 4.1及以上版本默认启用了一个名为`DefaultServletHandler`的处理器,用于处理静态资源。如果需要,可以在`DispatcherServlet`配置中禁用默认处理器并自定义。 4. **注意文件路径的前缀**: 以上配置中的路径 `/css/**` 表示访问 URL 以 `/css/` 开始的所有路径都会被映射到类路径下 `static/css/` 目录下的内容。确保你的静态资源目录结构与路径匹配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值