jsp中的相对路径和绝对路径

时间:2022-11-27 17:37:38
  所谓相对路径,就是相对于自己的目标文件位置。例如“s1.htm” 文件里引用了“bg.jpg”图片,如果“bg.jpg”图片相对于“s1.htm”来说,是在同一个目录的,那么只要在“s1.htm”文件里使用以下代 码后,在浏览器里都能正确地显示图片。以后只要这两个文件的相对位置没有变(也就是说还是在同一个目录内),那么无论上传到Web服务器的哪个位置,都能正常显示
      <body background="bg.jpg">
 
  相对路径还可以相对服务器而言,但地址要以"/"开头
  <body background="/xxxapp/bg.jpg">
 
  •   JSP文件中的path 和 basePath
<%
String path = request.getContextPath(); //  path = "/travel"
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; // basePath="http://localhost:8080/travel/"
%>

  

 
  •   采用绝对路径的弊端
  <%
    String basePath = request.getScheme()+ "://"+request.getServerName()+ ":"+request.getServerPort()+path+ "/";
  %>
  采用绝对路径时,页面中的超链接都要加上<%=basePath%>,会显得很麻烦。
  <href src="<%=basePath%>script/jquery-1.9.1.js"/>
 
  •   解决方案:利用html中的 <base>标签(推荐)

  <head>    

  <!-- base需要放到head中 -->    

  <base href=" <%=basePath%>">    

  </head>  

  这里我们就可以直接使用相对路径(即: 相对于base标签)

  <href src="script/jquery-1.9.1.js"/>

  • 总结:以下三种表达方式结果相同
<head>
    <base href="<%=basePath%>">
    <script src="<%=path%>/script/jquery-1.9.1.js"></script>
    <script src="<%=basePath%>script/jquery-1.9.1.js"></script>
    <script src="script/jquery-1.9.1.js"></script><!--这种最简洁-->
</head>