java web开发时的绝对路径与相对路径

时间:2021-12-01 12:09:18

相对路径

  不以/开头的路径为相对路径,使用相对路径时的路径为当前访问的文件的父目录,即如果现在访问文件的路径为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(另外,用get方法提交时,action路径后不能带参数,获取不到,用post可以)以及Servlet中的response的重定向response.sendRedirect(jsp中<c:redirect url="/2.jsp"></c:redirect>标签会在转换成servlet时自动添加项目名,不需要自己加项目名;而在<%%>中重定向时,还需要自己添加项目名);有服务器解析的有:request.getRequestDispatcher("路径").forward(request, response),web.xml中servlet-mapping配置中url-pattern属性,jsp转发标签<jsp:forward page=""></jsp:forward>。

另外

  与web不同,文件IO中的相对路径是基于当前项目的,即F:\EclipseWorkspace(工作目录)\myServlet(项目)\;绝对路径则从根目录开始。