web路径总结与项目部署到Tomcat时资源访问404问题的解决
路径的分类:
1、相对路径
不可以确定唯一资源
eg:./demo.html 表示当前目录下有一个demo.html页面
规则:./表示当前目录 ../表示上一级目录
注意事项
IDEA中:
如果使用Junit中的单元测试方法测试,相对路径在当前Module下
如果使用main()测试,相对路径即为当前的Project下
Eclipse中:
不论单元测试方法还是man()测试,相对路径都是在当前的Project下
2、绝对路径
可以确定唯一的资源
eg:http://ip:port/myWeb/demo.html
可简化为: /myWeb/demo.html。省略了协议、域名和端口号
绝对路径又分为浏览器解析和服务器解析两种:
包括:超链接、重定向和html标签中写的路径
包括:Servlet路径配置、请求转发、Context.getRealPath()和jsp中自定义的标签
写绝对路径建议不要写死,不然如果修改了Tomcat中的虚拟目录,那么所有用绝对路径写的重定向都将无法访问.可以调用request.getContextPath()获取虚拟目录路径
//动态获取虚拟目录
String contextPath = request.getContextPath();
//重定向演示
response.sendRedirect(contextPath + "/demo.html")
Ajax中的路径:
1、请求路径以根路径“/“开头
无论什么ajax在什么页面,该请求都是相对于服务器的根路径,即最后的路径是http://ip:port + /myWeb/demoServlet (“/”表示基于服务器的根路径)
2、不以“/“开头
表示改请求路径相对于当前文件所在的路径
$.ajax({
url: “/request/ajaxTest”
})
若请求在当前页面( http://ip:port/myWeb/index.html)
则实际请求路径为:http://ip:port/myWeb/request/ajaxTest
3、全路径
web项目部署到Tomcat时的404问题:
将idea中的web项目打包部署到Tomcat时,如果我们发现几乎所有页面都无法访问404时,我们需要去检查idea中Tomcat的配置
原因在于:我们通常习惯于将web项目的默认访问路径Application context修改为与项目同名。我们要注意在打war包前需要将虚拟目录路径修改为“/”