初识Servlet 遇到关于路径的问题
- 这是我的项目结构:
- 项目的虚拟路径:
- 当我在
web.xml
中设置news.html
为欢迎界面时:
- 网页会出现图片无法加载的问题:
- 我们可以看到
news.html
中的url
是相对路径:
- 这样就会导致当网页打开后,网页会在当前目录下自动进行图片访问加载
我们知道通过../img/logo.png
访问到的路径为localhost:8080/img/logo.png
,那么就会产生一个问题:虚拟路径缺失,因此会导致图片无法加载。
解决方案一
我们可以把虚拟路径设置为 /
,这样可以避免虚拟路径的丢失。
解决方案二
也可以直接在浏览器中输入绝对路径:localhost:8080/test/news/news.html
,也可以解决图片加载不出来的问题。
但这样欢迎界面就没有意义了。
解决方案三
可以不用设置欢迎界面,可以在index.jsp
中通过<a>
标签设置链接打开news.html
页面。
总结
-
对于这个项目,不能配置虚拟路径,如果配置虚拟路径news.html的图片将无法显示
-
当访问到news.html ,浏览器会检测html中的所有路径(img,link),再次发起请求,而这些路径如果是相对路径,则会参照当前浏览器中的路径来进行查找
-
由于相对路径参照的文件夹不一样,会有很多种解决方案,主要是要理解资源的加载路径、加载过程