相对路径
不以/开头的路径为相对路径,使用相对路径时的路径为当前访问的文件的父目录,即如果现在访问文件的路径为http://localhost:8080/项目名/目录/文件,那么相对路径的当前路径为http://localhost:8080/项目名/目录/,如路径:另一个文件,即为http://localhost:8080/项目名/目录/另一个文件。
可以在head中使用base标签更改相对路径当前路径,
例如:添加<base href=”http://localhost:8080/”>后,当前路径就不是当前访问的文件的父目录了,而是http://localhost:8080/,可以避免直接使用相对路径容易出现的404路径错误。
绝对路径
绝对路径以/开头,如果路径由浏览器解析,那么当前路径为http://localhost:8080/,访问文件时还需要加项目名,即http://localhost:8080/项目名/目录/文件;如果路径由服务器解析,那么当前路径为http://localhost:8080/项目名/,访问文件时就不用再加项目名。
由浏览器解析的情况有:a标签的href、form表单的action以及response的重定向response.sendRedirect;有服务器解析的有:request.getRequestDispatcher("路径").forward(request, response),web.xml中servlet-mapping配置中url-pattern属性,jsp转发标签<jsp:forward page=""></jsp:forward>。
另外
与web不同,文件IO中的相对路径是基于当前项目的,即F:\EclipseWorkspace(工作目录)\myServlet(项目)\;绝对路径则从根目录开始。